本書的主要目的在于介紹如何使用Django這個Web Framework在網絡主機上架設一個全功能的網站。Django是一個由Python編寫的具有完整架站能力的Web網站框架,通過這個框架,只要短短幾個指令,Python的程序設計人員就可以輕松地建立一個正式網站所需要的骨架(框架),再從這個框架中開發出全功能的網站。
Python語言充滿了令人津津樂道的加速技巧,為了方便讀者學習,本書盡量使用初學者容易理解的講述方式,以期閱讀本書的讀者能夠在*短的時間內跨過使用程序設計語言制作網站的門檻,馬上以Python建立自己的特色網站,并在熟悉流程以及架構后,進一步提升網站的性能。
所以,只要您有Python的基本程序設計能力以及網站架構和運行的基本概念,基本上就有足夠的能力通過本書來建立屬于自己的動態網站——一個可以讓您充分利用Python語言所有能力、連接數據庫、使用社交網站賬號驗證機制、實時運算處理數據、充分實現所有“點子”的網站。
本書所有網站范例均在Python 2.7.6以及Django 1.8.13中測試無誤,為了避免學習上的困擾,建議讀者在學習時盡量以同樣的版本練習(相同的主版本號即可),等熟練之后再視需求升級版本。此外,一開始建立基本范例時也以自行輸入程序代碼為主,等到有了一定的基礎,再把自己的程序代碼拿來重復使用,“在實踐中學習”永遠是程序設計學習的*佳方法。
第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 創建網頁輸出模板template 55
2.3.2 網址對應urls.py 60
2.3.3 共享模板的使用 62
2.4 高級網站功能的運用 65
2.4.1 JavaScript以及CSS文件的引用 65
2.4.2 圖像文件的應用 69
2.4.3 在主網頁顯示文章摘要 71
2.4.4 博客文章的HTML內容處理 73
2.4.5 Markdown語句解析與應用 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.1 Heroku賬號申請與環境設置 89
3.2.2 修改網站的相關設置 91
3.2.3 上傳網站到Heroku主機 92
3.2.4 Heroku主機的操作 96
3.3 在Google Cloud Platform上部署 97
3.3.1 Google Cloud Platform的介紹 98
3.3.2 Google Computing的啟用與設置 101
3.3.3 Google App Engine的說明與設置 104
3.4 習題 111
第4堂 深入了解Django的MVC架構 112
4.1 Django的MVC架構簡介 112
4.1.1 MVC架構簡介 112
4.1.2 Django的MTV架構 113
4.1.3 Django網站的構成以及配合 114
4.1.4 在Django MTV架構下的網站開發步驟 115
4.2 Model簡介 116
4.2.1 在models.py中創建數據表 116
4.2.2 在admin.py中創建數據表管理界面 119
4.2.3 在Python Shell中操作數據表 123
4.2.4 數據的查詢與編輯 125
4.3 View簡介 127
4.3.1 建立簡易的HttpResponse網頁 127
4.3.2 在views.py中顯示查詢數據列表 129
4.3.3 網址欄參數處理的方式 131
4.4 Template簡介 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.1 Django網址架構 143
5.1.1 URLconf簡介 143
5.1.2 urlpatterns的Regular Expression語法說明 145
5.1.3 驗證RE設計URL的正確性 148
5.2 高級設置技巧 149
5.2.1 參數的傳送 149
5.2.2 include其他整組的urlpatterns設置 150
5.2.3 URLconf的反解功能 151
5.3 習題 152
第6堂 Template深入探討 153
6.1 Template的設置與運行 153
6.1.1 settings.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.1 Template模板的繼承 163
6.2.2 共享模板的使用范例 165
6.3 Template語言 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.4 models.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