圖書簡介
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