《Python 新手學Django 2.0架站的16堂課(第2版)》是清華大學出版社出版的一本圖書。
基本介紹
- 中文名:Python 新手學Django 2.0架站的16堂課(第2版)
- 作者:何敏煌、林亮昀
- 出版社:清華大學出版社
- 出版時間:2019年4月1日
- 定價:99 元
- ISBN:9787302523321
內容簡介,目錄,
內容簡介
Python是目前非常受歡迎的程式設計語言,本書通過對Python語言朵犁葛記使用最多的Django 2.0 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扮演的角色 3
1.1.3 使用Python/Django建立網站的優勢 4
1.2 建立網站良簽擊開發流程 4
1.2.1 開發流程簡介 4
1.2.2 在Windows建立Linux虛擬機 5
1.2.3 在Mac OS安裝Linux虛擬機 12
1.2.4 在Linux虛擬機中創建Python Django開發環境 18
1.2.5 設定SSH、PuTTY以及FTP伺服器 19
1.2.6 安裝Notepad++程式編輯器 23
1.3 活用版本控制系統 27
1.3.1 版本控制系統Git簡介 27
1.3.2 申請Bitbucket賬號 28
1.3.3 在虛擬機中連線Bitbucket 30
1.3.4 在不同的計算機之紙祖遷拔間開發同一個網站 32
1.4 其他網站項目開發環境的安裝建議 33
1.4.1 在Windows 10創建開發環境 33
1.4.2 在MacOS中創建開發環境 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 產生第一個網站框架 42
2.1.3 Django資料夾與檔案解析 44
2.2創建部落格數據表 46
2.2.1資料庫與Django的關係 46
2.2.2定義數據模型 46
2.2.3啟動admin管理界面 47
2.2.4讀取資料庫中的內容 52
2.3網址對應與頁面輸出 54
2.3.1創建網頁輸出模板Template 54
2.3.2網址對應urls.py 58
2.3.3共享局潤境模板的使用 60
2.4高級網站功能的運用 63
2.4.1JavaScript以及CSS檔案的引用 63
2.4.2圖像檔案的套用 67
2.4.3在主網頁顯示文章摘要 68
2.4.4部落格文章的HTML內容處理 70
2.4.5Markdown語句解析與套用 73
2.5習題 75
第3堂讓網站上線 76
3.1DigitalOcean部署 76
3.1.1申請賬號與創建虛擬主機 76
3.1.2安裝Apache網頁伺服器及Django執行環境 80
3.1.3修改settings.py、000-default.conf等相關設定 82
3.1.4創建域名以及多平台設定 84
3.2在Heroku上部署 87
3.2.1Heroku賬號申請與環境設定 87
3.2.2修改網站的相關設定 89
3.2.3上傳網站到Heroku主機 90
3.2.4Heroku主機的操作 93
3.3在GoogleCloudPlatform上部署 94
3.3.1GoogleCloudPlatform的介紹 94
3.3.2GoogleComputing啟用與設定 98
3.3.3GoogleAppEngine的說明與設定 101
3.4習題 110
第4堂深入了解Django的MVC架構 111
4.1Django的MVC架構簡介 111
4.1.1MVC架構簡介 111
4.1.2Django的MTV架構 112
4.1.3Django網站的構成以及配合 113
4.1.4在DjangoMTV架構下的網站開發步驟 114
4.2Model簡介 115
4.2.1在models.py中創建數據表 116
4.2.2在admin.py中創建數據表管理界面 118
4.2.3在PythonShell中運算元據表 121
4.2.4數據的查詢與編輯 123
4.3View簡介 125
4.3.1建立簡易的HttpResponse網頁 126
4.3.2在views.py中顯示查詢數據列表 127
4.3.3網址欄參數處理的方式 128
4.4Template簡介 131
4.4.1創建Template資料夾與檔案 131
4.4.2傳送變數到Template檔案中 132
4.4.3在Template中處理列表變數 135
4.5最終版本摘要 135
4.6習題 138
第5堂網址的對應與委派 139
5.1Django網址架構 139
5.1.1URLconf簡介 139
5.1.2委派各個的網址到處理函式 141
5.1.3urlpatterns的正則表達式語法說明(適用於Django2.0以前的版本) 144
5.1.4驗證正則表達式設計URL的正確性 147
5.2高級設定技巧 148
5.2.1參數的傳送 148
5.2.2include其他整組的urlpatterns設定 149
5.2.3URLconf的反解功能 149
5.3習題 150
第6堂Template深入探討 151
6.1Template的設定與運行 151
6.1.1settings.py設定 151
6.1.2創建Template檔案 153
6.1.3在Template檔案中使用現有的網頁框架 154
6.1.4直播電視網站套用範例 155
6.1.5在Template中使用static檔案 158
6.2高級Template技巧 160
6.2.1Template模板的繼承 160
6.2.2共享模板的使用範例 162
6.3Template語言 163
6.3.1判斷指令 163
6.3.2循環指令 164
6.3.3過濾器與其他的語法標記 168
6.4習題 171
第7堂Models與資料庫 172
7.1網站與資料庫 172
7.1.1資料庫簡介 172
7.1.2規劃網站需要的資料庫 173
7.1.3數據表內容設計 176
7.1.4models.py設計 177
7.2活用Model製作網站 178
7.2.1建立網站 178
7.2.2製作網站模板 180
7.2.3製作多數據表整合查詢網頁 182
7.2.4調整admin管理網頁的外觀 186
7.3在Django使用MySQL資料庫系統 188
7.3.1安裝開發環境中的MySQL連線環境(Ubuntu) 188
7.3.2安裝開發環境中的MySQL連線環境(Windows) 189
7.3.3使用Google雲端主機的商用SQL伺服器 192
7.4習題 196
第8堂網站窗體的套用 197
8.1網站與窗體 197
8.1.1HTML<form>窗體簡介 197
8.1.2活用窗體的標籤 200
8.1.3建立本堂課範例網站的數據模型 202
8.1.4網站窗體的建立與數據顯示 204
8.1.5接收窗體數據存儲於資料庫中 206
8.1.6加上刪除帖文的功能 207
8.2基礎窗體類的套用 209
8.2.1使用POST傳送窗體數據 209
8.2.2結合窗體和資料庫 213
8.2.3數據接收與欄位的驗證方法 216
8.2.4使用第三方服務傳送電子郵件 219
8.3模型窗體類ModelForm的套用 223
8.3.1ModelForm的使用 223
8.3.2通過ModelForm產生的窗體存儲數據 225
8.3.3為窗體加上防機器人驗證機制 226
8.4習題 231
第9堂網站的Session功能 232
9.1Session簡介 232
9.2.1複製Django網站 232
9.1.2Cookie簡介 233
9.1.3建立網站登錄功能 234
9.1.4Session的相關函式介紹 239
9.2活用Session 240
9.2.1建立用戶數據表 240
9.2.3整合Django的信息顯示框架MessagesFramework 246
9.3Djangoauth用戶驗證 249
9.3.1使用Django的用戶驗證系統 249
9.3.2增加User的欄位 252
9.3.3顯示新增加的User欄位 254
9.3.4套用auth用戶驗證存取資料庫 256
9.4習題 261
第10堂網站用戶的註冊與管理 262
10.1建立網站用戶的自動化註冊功能 262
10.1.1django-registration-redux安裝與設定 262
10.1.2創建django-registration-redux所需的模板 263
10.1.3整合用戶註冊功能到分享日記網站 267
10.免費Python網站開發環境 271
10.2.1註冊賬號 271
10.2.2在Pythonanywhere免費網站中建立虛擬環境以及Django網站 278
10.2.3建立投票網站的基本架構 283
10.3使用Facebook驗證賬號操作實踐 290
10.3.1在Pythonanywhere中安裝django-allauth與設定 290
10.3.2到Facebook開發者網頁申請驗證機制 293
10.3.3在網站中識別用戶的登錄狀態 298
10.3.4客戶化django-allauth頁面 301
10.4習題 303
第11堂社交網站套用實踐 304
11.1投票網站的規劃與調整 304
11.1.1網站功能與需求 304
11.1.2數據表與頁面設計 306
11.1.3網站的轉移 309
11.2.4移動設備的考慮 311
11.2深入探討django-allauth 312
11.2.1django-allauth的Template標籤 313
11.2.2django-allauth的Template頁面 314
11.2.3獲取Facebook用戶的信息 316
11.3投票網站功能解析 317
11.3.1首頁的分頁顯示功能 318
11.3.2自定義標籤並在首頁顯示目前的投票數 319
11.3.3使用AJAX和jQuery改進投票的效果 322
11.3.4避免重複投票的方法 327
11.3.6新建Twitter賬號連結 329
11.4習題 334
第12堂電子商店網站實踐 335
12.1打造迷你電商網站 335
12.1.1複製網站,不要從零開始 335
12.1.2建立網站所需要的數據表 337
12.1.3上傳照片的方法django-filer 341
12.1.4把django-filer的圖像檔案加到數據表中 345
12.2增加網站功能 348
12.2.1分類查看產品 348
12.2.2顯示詳細的產品內容 352
12.2.3購物車功能 353
12.2.4建立訂單功能 357
12.3電子支付功能 365
12.3.1建立付款流程 366
12.3.2建立PayPal付款連結 368
12.3.3接收PayPal付款完成通知 374
12.3.4測試PayPal付款功能 375
12.4習題 381
第13堂全功能電子商店網站django-oscar實踐 382
13.1Django購物網站Oscar的安裝與使用 382
13.1.1電子購物網站模板 382
13.1.2DjangoOscar購物車系統測試網站安裝 383
13.2建立Oscar的套用網站 386
13.2.1安裝前的準備 386
13.2.2建立網站的域名 387
13.2.3調整Apache2配置檔案 388
13.2.4建立DjangoOscar購物網站項目 389
13.2.5加上電子郵件的傳送功能 397
13.2.6簡單地修改Oscar網站的設定 398
13.2.7增加PayPal線上付款功能 401
13.3自定義Oscar網站 406
13.3.1建立自己的templates,打造客戶化的外觀 407
13.3.2網站的中文翻譯 416
13.4習題 417
第14堂使用Mezzanine快速打造CMS網站 418
14.1快速安裝MezzanineCMS網站 418
14.1.1什麼是Mezzanine 418
14.1.2安裝Mezzanine 419
14.1.3安裝Mezzanine主題 425
14.1.4Mezzanine網站的設定與調整 427
14.2使用Mezzanine建立電子商店網站 429
14.2.1安裝電子購物車套件與建立網站 429
14.2.2自定義Mezzanine網站的外觀 431
14.3在Heroku部署Mezzanine網站 435
14.4習題 440
第15堂名言佳句產生器網站實踐 441
15.1建立網站前的準備 441
15.1.1準備網站所需的素材 441
15.1.2圖文整合練習 442
15.1.3建立可隨機顯示圖像的網站 444
15.2產生器功能的實現 446
15.2.1建立產生器界面 447
15.2.2產生唯一的檔案名稱 449
15.2.3開始合併隨後產生圖像檔案 449
15.2.4準備多個背景圖像檔案以供選擇 453
15.3自定義圖像檔案功能 458
15.3.1加入會員註冊功能 458
15.3.2建立上傳檔案的界面 458
15.3.3上傳檔案的方法 462
15.3.4實時產生結果 464
15.4習題 466
第16堂課程回顧與你的下一步 467
16.1善加運用網站資源 467
16.2部署上線的注意事項 470
16.3SSL設定實踐 472
16.4程式代碼和網站測試的重要性 483
16.5其他Python框架 486
16.6你的下一步 486
2.2.1資料庫與Django的關係 46
2.2.2定義數據模型 46
2.2.3啟動admin管理界面 47
2.2.4讀取資料庫中的內容 52
2.3網址對應與頁面輸出 54
2.3.1創建網頁輸出模板Template 54
2.3.2網址對應urls.py 58
2.3.3共享模板的使用 60
2.4高級網站功能的運用 63
2.4.1JavaScript以及CSS檔案的引用 63
2.4.2圖像檔案的套用 67
2.4.3在主網頁顯示文章摘要 68
2.4.4部落格文章的HTML內容處理 70
2.4.5Markdown語句解析與套用 73
2.5習題 75
第3堂讓網站上線 76
3.1DigitalOcean部署 76
3.1.1申請賬號與創建虛擬主機 76
3.1.2安裝Apache網頁伺服器及Django執行環境 80
3.1.3修改settings.py、000-default.conf等相關設定 82
3.1.4創建域名以及多平台設定 84
3.2在Heroku上部署 87
3.2.1Heroku賬號申請與環境設定 87
3.2.2修改網站的相關設定 89
3.2.3上傳網站到Heroku主機 90
3.2.4Heroku主機的操作 93
3.3在GoogleCloudPlatform上部署 94
3.3.1GoogleCloudPlatform的介紹 94
3.3.2GoogleComputing啟用與設定 98
3.3.3GoogleAppEngine的說明與設定 101
3.4習題 110
第4堂深入了解Django的MVC架構 111
4.1Django的MVC架構簡介 111
4.1.1MVC架構簡介 111
4.1.2Django的MTV架構 112
4.1.3Django網站的構成以及配合 113
4.1.4在DjangoMTV架構下的網站開發步驟 114
4.2Model簡介 115
4.2.1在models.py中創建數據表 116
4.2.2在admin.py中創建數據表管理界面 118
4.2.3在PythonShell中運算元據表 121
4.2.4數據的查詢與編輯 123
4.3View簡介 125
4.3.1建立簡易的HttpResponse網頁 126
4.3.2在views.py中顯示查詢數據列表 127
4.3.3網址欄參數處理的方式 128
4.4Template簡介 131
4.4.1創建Template資料夾與檔案 131
4.4.2傳送變數到Template檔案中 132
4.4.3在Template中處理列表變數 135
4.5最終版本摘要 135
4.6習題 138
第5堂網址的對應與委派 139
5.1Django網址架構 139
5.1.1URLconf簡介 139
5.1.2委派各個的網址到處理函式 141
5.1.3urlpatterns的正則表達式語法說明(適用於Django2.0以前的版本) 144
5.1.4驗證正則表達式設計URL的正確性 147
5.2高級設定技巧 148
5.2.1參數的傳送 148
5.2.2include其他整組的urlpatterns設定 149
5.2.3URLconf的反解功能 149
5.3習題 150
第6堂Template深入探討 151
6.1Template的設定與運行 151
6.1.1settings.py設定 151
6.1.2創建Template檔案 153
6.1.3在Template檔案中使用現有的網頁框架 154
6.1.4直播電視網站套用範例 155
6.1.5在Template中使用static檔案 158
6.2高級Template技巧 160
6.2.1Template模板的繼承 160
6.2.2共享模板的使用範例 162
6.3Template語言 163
6.3.1判斷指令 163
6.3.2循環指令 164
6.3.3過濾器與其他的語法標記 168
6.4習題 171
第7堂Models與資料庫 172
7.1網站與資料庫 172
7.1.1資料庫簡介 172
7.1.2規劃網站需要的資料庫 173
7.1.3數據表內容設計 176
7.1.4models.py設計 177
7.2活用Model製作網站 178
7.2.1建立網站 178
7.2.2製作網站模板 180
7.2.3製作多數據表整合查詢網頁 182
7.2.4調整admin管理網頁的外觀 186
7.3在Django使用MySQL資料庫系統 188
7.3.1安裝開發環境中的MySQL連線環境(Ubuntu) 188
7.3.2安裝開發環境中的MySQL連線環境(Windows) 189
7.3.3使用Google雲端主機的商用SQL伺服器 192
7.4習題 196
第8堂網站窗體的套用 197
8.1網站與窗體 197
8.1.1HTML<form>窗體簡介 197
8.1.2活用窗體的標籤 200
8.1.3建立本堂課範例網站的數據模型 202
8.1.4網站窗體的建立與數據顯示 204
8.1.5接收窗體數據存儲於資料庫中 206
8.1.6加上刪除帖文的功能 207
8.2基礎窗體類的套用 209
8.2.1使用POST傳送窗體數據 209
8.2.2結合窗體和資料庫 213
8.2.3數據接收與欄位的驗證方法 216
8.2.4使用第三方服務傳送電子郵件 219
8.3模型窗體類ModelForm的套用 223
8.3.1ModelForm的使用 223
8.3.2通過ModelForm產生的窗體存儲數據 225
8.3.3為窗體加上防機器人驗證機制 226
8.4習題 231
第9堂網站的Session功能 232
9.1Session簡介 232
9.2.1複製Django網站 232
9.1.2Cookie簡介 233
9.1.3建立網站登錄功能 234
9.1.4Session的相關函式介紹 239
9.2活用Session 240
9.2.1建立用戶數據表 240
9.2.3整合Django的信息顯示框架MessagesFramework 246
9.3Djangoauth用戶驗證 249
9.3.1使用Django的用戶驗證系統 249
9.3.2增加User的欄位 252
9.3.3顯示新增加的User欄位 254
9.3.4套用auth用戶驗證存取資料庫 256
9.4習題 261
第10堂網站用戶的註冊與管理 262
10.1建立網站用戶的自動化註冊功能 262
10.1.1django-registration-redux安裝與設定 262
10.1.2創建django-registration-redux所需的模板 263
10.1.3整合用戶註冊功能到分享日記網站 267
10.免費Python網站開發環境 271
10.2.1註冊賬號 271
10.2.2在Pythonanywhere免費網站中建立虛擬環境以及Django網站 278
10.2.3建立投票網站的基本架構 283
10.3使用Facebook驗證賬號操作實踐 290
10.3.1在Pythonanywhere中安裝django-allauth與設定 290
10.3.2到Facebook開發者網頁申請驗證機制 293
10.3.3在網站中識別用戶的登錄狀態 298
10.3.4客戶化django-allauth頁面 301
10.4習題 303
第11堂社交網站套用實踐 304
11.1投票網站的規劃與調整 304
11.1.1網站功能與需求 304
11.1.2數據表與頁面設計 306
11.1.3網站的轉移 309
11.2.4移動設備的考慮 311
11.2深入探討django-allauth 312
11.2.1django-allauth的Template標籤 313
11.2.2django-allauth的Template頁面 314
11.2.3獲取Facebook用戶的信息 316
11.3投票網站功能解析 317
11.3.1首頁的分頁顯示功能 318
11.3.2自定義標籤並在首頁顯示目前的投票數 319
11.3.3使用AJAX和jQuery改進投票的效果 322
11.3.4避免重複投票的方法 327
11.3.6新建Twitter賬號連結 329
11.4習題 334
第12堂電子商店網站實踐 335
12.1打造迷你電商網站 335
12.1.1複製網站,不要從零開始 335
12.1.2建立網站所需要的數據表 337
12.1.3上傳照片的方法django-filer 341
12.1.4把django-filer的圖像檔案加到數據表中 345
12.2增加網站功能 348
12.2.1分類查看產品 348
12.2.2顯示詳細的產品內容 352
12.2.3購物車功能 353
12.2.4建立訂單功能 357
12.3電子支付功能 365
12.3.1建立付款流程 366
12.3.2建立PayPal付款連結 368
12.3.3接收PayPal付款完成通知 374
12.3.4測試PayPal付款功能 375
12.4習題 381
第13堂全功能電子商店網站django-oscar實踐 382
13.1Django購物網站Oscar的安裝與使用 382
13.1.1電子購物網站模板 382
13.1.2DjangoOscar購物車系統測試網站安裝 383
13.2建立Oscar的套用網站 386
13.2.1安裝前的準備 386
13.2.2建立網站的域名 387
13.2.3調整Apache2配置檔案 388
13.2.4建立DjangoOscar購物網站項目 389
13.2.5加上電子郵件的傳送功能 397
13.2.6簡單地修改Oscar網站的設定 398
13.2.7增加PayPal線上付款功能 401
13.3自定義Oscar網站 406
13.3.1建立自己的templates,打造客戶化的外觀 407
13.3.2網站的中文翻譯 416
13.4習題 417
第14堂使用Mezzanine快速打造CMS網站 418
14.1快速安裝MezzanineCMS網站 418
14.1.1什麼是Mezzanine 418
14.1.2安裝Mezzanine 419
14.1.3安裝Mezzanine主題 425
14.1.4Mezzanine網站的設定與調整 427
14.2使用Mezzanine建立電子商店網站 429
14.2.1安裝電子購物車套件與建立網站 429
14.2.2自定義Mezzanine網站的外觀 431
14.3在Heroku部署Mezzanine網站 435
14.4習題 440
第15堂名言佳句產生器網站實踐 441
15.1建立網站前的準備 441
15.1.1準備網站所需的素材 441
15.1.2圖文整合練習 442
15.1.3建立可隨機顯示圖像的網站 444
15.2產生器功能的實現 446
15.2.1建立產生器界面 447
15.2.2產生唯一的檔案名稱 449
15.2.3開始合併隨後產生圖像檔案 449
15.2.4準備多個背景圖像檔案以供選擇 453
15.3自定義圖像檔案功能 458
15.3.1加入會員註冊功能 458
15.3.2建立上傳檔案的界面 458
15.3.3上傳檔案的方法 462
15.3.4實時產生結果 464
15.4習題 466
第16堂課程回顧與你的下一步 467
16.1善加運用網站資源 467
16.2部署上線的注意事項 470
16.3SSL設定實踐 472
16.4程式代碼和網站測試的重要性 483
16.5其他Python框架 486
16.6你的下一步 486