Python新手使用Django架站的16堂課

本書通過對Python語言使用最多的Django Web Framework的介紹,讓讀者可以輕鬆製作出全功能的動態網站。

圖書簡介

Python是目前非常受歡迎的程式設計語言,本書通過對Python語言使用最多的Django Web Framework的介紹,讓讀者可以輕鬆製作出全功能的動態網站。本書分4部分,以16堂課來介紹Python新手使用Django架站的要點。第一部分(第1~3堂)以一個小型的個人部落格網站為主軸,介紹如何快速建立一個實用的Django網站;第二部分(第4~7堂)是Django架構深入剖析,詳細分析Django的MVC/MTV架構;第三部分(第8~11堂)為實用網站開發技巧;第四部分(第12~16堂)為實用網站開發教學,從設計、規劃到實踐,逐步指導讀者在自己的主機環境下構建出有趣實用的內容。本書既可作為希望快速上手Python+Django的初學者的參考書籍,也可作為Python培訓學校在Python+Django方面的培訓教程。

圖書目錄

第1堂 網站開發環境的建立 1

1.1 網站的基礎知識 1

1.1.1 網站的運行流程 1

1.1.2 Python/Django扮演的角色 2

1.1.3 使用Python/Django建立網站的優勢 3

1.2 建立網站開發流程 3

1.2.1 開發流程簡介 4

1.2.2 在Windows中建立Linux虛擬機 5

1.2.3 在Mac OS中安裝Linux虛擬機 11

1.2.4 在Linux虛擬機中創建Python Django開發環境 17

1.2.5 設定SSH、PuTTY以及FTP伺服器 18

1.2.6 安裝Notepad++程式編輯器 22

1.3 活用版本控制系統 26

1.3.1 版本控制系統Git簡介 26

1.3.2 申請Bitbucket賬號 26

1.3.3 在虛擬機中連線Bitbucket 29

1.3.4 在不同的計算機之間開發同一個網站 31

1.4 其他網站項目開發環境的安裝建議 32

1.4.1 在Windows 10中創建開發環境 32

1.4.2 在Mac OS中創建開發環境 35

1.4.3 在Cloud9中創建開發環境 37

1.4.4 在DigitalOcean VPS中創建開發環境 39

1.5 習題 40

第2堂 Django網站快速入門 41

2.1 個人部落格網站規劃 41

2.1.1 部落格網站的需求與規劃 41

2.1.2 產生第一個網站框架 41

2.1.3 Django資料夾與檔案解析 44...

2.2創建部落格數據表46

2.2.1資料庫與Django的關係46

2.2.2定義數據模型47

2.2.3啟動admin管理界面48

2.2.4讀取資料庫中的內容52

2.3網址對應與頁面輸出55

2.3.1創建網頁輸出模板template55

2.3.2網址對應urls.py60

2.3.3共享模板的使用62

2.4高級網站功能的運用65

2.4.1JavaScript以及CSS檔案的引用65

2.4.2圖像檔案的套用69

2.4.3在主網頁顯示文章摘要71

2.4.4部落格文章的HTML內容處理73

2.4.5Markdown語句解析與套用75

2.5習題77

第3堂讓網站上線78

3.1在DigitalOcean上部署78

3.1.1申請賬號與創建虛擬主機78

3.1.2安裝Apache網頁伺服器及Django執行環境82

3.1.3修改settings.py、000-default.conf等相關設定83

3.1.4創建域名以及多平台設定86

3.2在Heroku上部署89

3.2.1Heroku賬號申請與環境設定89

3.2.2修改網站的相關設定91

3.2.3上傳網站到Heroku主機92

3.2.4Heroku主機的操作96

3.3在GoogleCloudPlatform上部署97

3.3.1GoogleCloudPlatform的介紹98

3.3.2GoogleComputing的啟用與設定101

3.3.3GoogleAppEngine的說明與設定104

3.4習題111

第4堂深入了解Django的MVC架構112

4.1Django的MVC架構簡介112

4.1.1MVC架構簡介112

4.1.2Django的MTV架構113

4.1.3Django網站的構成以及配合114

4.1.4在DjangoMTV架構下的網站開發步驟115

4.2Model簡介116

4.2.1在models.py中創建數據表116

4.2.2在admin.py中創建數據表管理界面119

4.2.3在PythonShell中運算元據表123

4.2.4數據的查詢與編輯125

4.3View簡介127

4.3.1建立簡易的HttpResponse網頁127

4.3.2在views.py中顯示查詢數據列表129

4.3.3網址欄參數處理的方式131

4.4Template簡介133

4.4.1創建template資料夾與檔案133

4.4.2傳送變數到template檔案中134

4.4.3在template中處理列表變數137

4.5最終版本摘要138

4.6習題142

第5堂網址的對應與委派143

5.1Django網址架構143

5.1.1URLconf簡介143

5.1.2urlpatterns的RegularExpression語法說明145

5.1.3驗證RE設計URL的正確性148

5.2高級設定技巧149

5.2.1參數的傳送149

5.2.2include其他整組的urlpatterns設定150

5.2.3URLconf的反解功能151

5.3習題152

第6堂Template深入探討153

6.1Template的設定與運行153

6.1.1settings.py設定153

6.1.2創建templates檔案155

6.1.3在templates檔案中使用現有的網頁框架156

6.1.4直播電視網站套用範例157

6.1.5在template中使用static檔案161

6.2高級Template技巧163

6.2.1Template模板的繼承163

6.2.2共享模板的使用範例165

6.3Template語言166

6.3.1判斷指令167

6.3.2循環指令168

6.3.3過濾器與其他語法標記173

6.4習題176

第7堂Models與資料庫177

7.1網站與資料庫177

7.1.1資料庫簡介177

7.1.2規劃網站需要的資料庫178

7.1.3數據表內容設計181

7.1.4models.py設計182

7.2活用Model製作網站183

7.2.1建立網站183

7.2.2製作網站模板186

7.2.3製作多數據表整合查詢網頁188

7.2.4調整admin管理網頁的外觀192

7.3在Django中使用MySQL資料庫系統194

7.3.1安裝開發環境中的MySQL連線環境(Ubuntu)194

7.3.2安裝開發環境中的MySQL連線環境(Windows)195

7.3.3使用Google雲端主機的商用SQL伺服器199

7.4習題203

第8堂網站窗體的套用204

8.1網站與窗體204

8.1.1HTML<form>窗體簡介204

8.1.2活用窗體的標籤208

8.1.3建立本堂課範例網站的數據模型210

8.1.4網站窗體的建立與數據顯示212

8.1.5接收窗體數據存儲於資料庫中214

8.1.6加上刪除帖文的功能215

8.2基礎窗體類的套用217

8.2.1使用POST傳送窗體數據218

8.2.2結合窗體和資料庫222

8.2.3數據接收與欄位的驗證方法226

8.2.4使用第三方服務傳送電子郵件229

8.3模型窗體類ModelForm的套用233

8.3.1ModelForm的使用233

8.3.2通過ModelForm產生的窗體存儲數據235

8.3.3為窗體加上防機器人的驗證機制237

8.4習題240

第9堂網站的Session功能241

9.1Session簡介241

9.1.1複製Django網站241

9.1.2Cookie簡介242

9.1.3使用Cookie建立網站登錄功能243

9.1.4開始使用Session249

9.2活用Session250

9.2.1建立用戶數據表250

9.2.2整合Django的信息顯示框架messagesframework257

9.3Djangoauth用戶驗證260

9.3.1使用Django的用戶驗證系統260

9.3.2增加User的欄位264

9.3.3顯示新增加的User欄位266

9.3.4套用auth用戶驗證存取資料庫268

9.4習題274

第10堂網站用戶的註冊與管理275

10.1建立網站用戶的自動化註冊功能275

10.1.1django-registration安裝與設定275

10.1.2建立django-registration所需的模板276

10.1.3整合用戶註冊功能到分享日記網站280

10.2Pythonanywhere.com免費Python網站開發環境285

10.2.1註冊Pythonanywhere.com賬號286

10.2.2在Pythonanywhere免費網站中建立虛擬機環境以及Django網站292

10.2.3建立投票網站的基本架構298

10.3使用Facebook驗證賬號操作實踐307

10.3.1在Pythonanywhere中安裝django-allauth與設定307

10.3.2到Facebook開發者網頁申請驗證機制309

10.3.3在網站中識別用戶的登錄狀態314

10.3.4客戶化django-allauth頁面318

10.4習題321

第11堂社交網站套用實踐322

11.1投票網站的規劃與調整322

11.1.1網站功能與需求322

11.1.2數據表與頁面設計324

11.1.3網站的轉移327

11.1.4移動設備的考慮329

11.2深入探討django-allauth331

11.2.1django-allauth的Template標籤331

11.2.2django-allauth的Template頁面333

11.2.3獲取Facebook用戶的信息335

11.3投票網站功能解析336

11.3.1首頁的分頁顯示功能337

11.3.2自定義標籤並在首頁顯示目前的投票數339

11.3.3使用AJAX和jQuery改進投票的效果341

11.3.4避免重複投票的方法348

11.3.5新建Twitter賬號連結350

11.4習題355

第12堂電子商店網站實踐356

12.1打造迷你電商網站356

12.1.1複製網站,不要從零開始356

12.1.2創建網站所需要的數據表358

12.1.3上傳照片的方法django-filer362

12.1.4把django-filer的圖像檔案添加到數據表中367

12.2增加網站功能370

12.2.1分類查看產品370

12.2.2顯示詳細的產品內容374

12.2.3購物車功能376

12.2.4建立訂單功能381

12.3電子支付功能390

12.3.1建立付款流程390

12.3.2建立PayPal付款連結393

12.3.3接收PayPal付款完成通知400

12.3.4測試PayPal付款功能401

12.4習題407

第13堂全功能電子商店網站django-oscar實踐408

13.1Django購物網站Oscar的安裝與使用408

13.1.1電子購物網站模板408

13.1.2DjangoOscar購物車系統測試網站安裝409

13.2建立Oscar的套用網站411

13.2.1安裝前的準備412

13.2.2建立網站的域名412

13.2.3調整Apache2配置檔案414

13.2.4建立DjangoOscar購物網站項目415

13.2.5加上電子郵件的傳送功能422

13.2.6簡單地修改Oscar網站的設定424

13.2.7增加PayPal線上付款功能427

13.3自定義Oscar網站432

13.3.1建立自己的templates,打造客戶化的外觀433

13.3.2網站的中文翻譯444

13.4習題445

第14堂二級網路域名管理網站實踐446

14.1建立網站前的準備工作446

14.1.1什麼是二級網路域名以及網路域名代管服務446

14.1.2申請網路域名以及網路域名代管服務DNSimple447

14.1.3設定網站主機的空間450

14.1.4建立網站框架450

14.2建立會員網站452

14.2.1加入電子郵件功能452

14.2.2安裝與使用django-registration453

14.2.3安裝dnsimple模組459

14.3網站功能設計461

14.3.1建立網站首頁的說明頁面462

14.3.2創建數據表463

14.3.3建立網址管理頁面464

14.3.4Subdomain數據表的存取466

14.3.5整合到dnsimple.com中469

14.4習題475

第15堂名言佳句產生器網站實踐477

15.1建立網站前的準備477

15.1.1準備網站所需的素材477

15.1.2圖文整合練習478

15.1.3建立可隨機顯示圖像的網站479

15.2產生器功能的實現483

15.2.1建立產生器界面483

15.2.2產生唯一的檔案名稱486

15.2.3開始合併並產生圖像檔案486

15.2.4準備多個背景圖像檔案以供選擇490

15.3自定義圖像檔案功能496

15.3.1加入會員註冊功能496

15.3.2建立上傳檔案的界面497

15.3.3上傳檔案的方法502

15.3.4實時產生結果504

15.4習題506

第16堂課程回顧與您的下一步507

16.1善加運用網站資源507

16.2部署上線的注意事項510

16.3SSL設定實踐513

16.4程式代碼和網站測試的重要性525

16.5其他Python框架528

16.6您的下一步528

相關詞條

熱門詞條

聯絡我們