Django Web 開發從入門到實戰

Django Web 開發從入門到實戰

作者: 孟令菊
出版社: 清華大學
出版在: 2021-06-01
ISBN-13: 9787302575290
ISBN-10: 7302575290
裝訂格式: 平裝
總頁數: 376 頁





內容描述


《Django Web開發從入門到實戰》循序漸進地講解了使用Python語言開發Django Web程序的知識,並通過具體實例的實現過程演示了使用Django框架的方法和流程。全書共17章,分別講解了初步認識Django,分析Django項目的結構,視圖層,Django數據庫操作,使用模塊,表單,站點配置和管理,站點的安全性,站點管理,系統優化、調試和部署,郵件發送模塊,用戶登錄驗證模塊,計數器模塊,Ajax模塊,分頁模塊,富文本編輯器模塊,綜合實戰:民宿信息可視化。全書文字簡潔而不失其技術深度,內容豐富全面,歷史資料翔實齊全。並且本書易於閱讀,以極簡的文字介紹了復雜的案例,同時涵蓋了其他同類圖書中很少涉及的歷史參考資料,是學習Django Web開發的完美教程。 《Django Web開發從入門到實戰》適合已經瞭解了Python語言基礎語法並且希望進一步提高Python開發水平的讀者閱讀,還可以作為大中專院校相關專業的師生用書和培訓學校的專業性教材。


目錄大綱


目錄
第1章  初步認識Django 1
1.1  Django Web開發基礎 2
1.1.1  Web開發和Web框架介紹 2
1.1.2  Django框架介紹 3
1.1.3  Django框架的特點 4
1.2  Django的設計模式 4
1.2.1  MVC設計模式介紹 4
1.2.2  MTV設計模式介紹 5
1.3  搭建Django開發環境 6
1.3.1  搭建Python環境 6
1.3.2  搭建Django環境 8
1.3.3  常用的Django命令 9
1.4  實現第一個Django Web項目 11
1.4.1  實戰演練:使用Django命令創建Django Web項目 11
1.4.2  實戰演練:使用PyCharm創建Django Web項目 14
第2章  分析Django項目的結構 19
2.1  實戰演練:在線投票系統 20
2.2  編寫第一個視圖 20
2.3  實現數據庫 22
2.3.1  配置數據庫 22
2.3.2  創建數據庫模型 23
2.3.3  啟用模型 24
2.3.4  使用模型的API 26
2.4  使用admin後台管理Web 29
2.4.1  創建管理員用戶 30
2.4.2  啟動Web項目 30
2.4.3  進入admin站點 31
2.4.4  在admin中註冊投票應用 31
2.4.5  體驗便捷的管理功能 31
2.5  視圖和模板 33
2.5.1  編寫視圖 33
2.5.2  編寫一個真正有用的視圖 34
2.5.3  快捷函數render() 36
2.5.4  拋出404錯誤 37
2.5.5  使用模板系統 38
2.5.6  刪除模板中硬編碼的URLs 38
2.5.7  URL names的命名空間 38
2.6  編寫一個簡單的表單 39
2.7  用通用視圖:減少重復代碼 42
2.7.1  改良URLconf 42
2.7.2  修改視圖 43
2.8  靜態文件 44
2.8.1  使用CSS自定義應用的風格 44
2.8.2  靜態文件命名空間 45
2.8.3  添加一個背景圖 45
2.9  重新設計後台 46
2.9.1  自定義後台表單 46
2.9.2  添加關聯對象 47
2.9.3  定製實例的列表頁面 51
2.9.4  定製admin整體界面 53
2.9.5  定製admin首頁 54
第3章  視圖層 55
3.1  視圖層介紹 56
3.1.1  分析View視圖的作用 56
3.1.2  實戰演練:使用簡易View視圖文件實例 57
3.2  URL調度器 59
3.2.1  URL調度器介紹 59
3.2.2  Django URL調度器的工作原理 61
3.2.3  路徑轉換器 61
3.2.4  URLconf匹配URL 65
3.2.5  設置視圖參數的默認值 65
3.2.6  自定義錯誤頁面 66
3.2.7  實戰演練:使用Django框架實現URL參數相加 67
3.3  編寫View視圖 69
3.3.1  一個簡單的視圖 70
3.3.2  返回錯誤信息 70
3.3.3  實戰演練:在線文件上傳系統 72
3.4  異步視圖 76
3.4.1  異步視圖介紹 76
3.4.2  異步中間件 77
3.4.3  實戰演練:使用異步視圖展示兩種貨幣的交易數據 78
第4章  Django數據庫操作 83
4.1  Model模型 84
4.1.1  Model模型基礎 84
4.1.2  META內部類 86
4.1.3  實戰演練:在Django框架中創建SQLite3數據庫 88
4.2  使用QuerySet API 89
4.2.1  QuerySet API基礎 90
4.2.2  生成新的QuerySet對象的方法 91
4.2.3  不返回QuerySet的方法 96
4.2.4  字段查找 99
4.2.5  實戰演練:使用QuerySet API操作SQLite數據庫 100
4.3  實戰演練:使用QuerySet API操作MySQL數據庫 105
第5章  使用模板 111
5.1  模板基礎 112
5.1.1  配置引擎 112
5.1.2  Django模板的基礎用法 113
5.1.3  實戰演練:使用簡易模板 114
5.2  模板標簽Tags 115
5.2.1  常用的模板標簽 115
5.2.2  實戰演練:在模板中使用for循環顯示列表內容 120
5.3  模板過濾器Filter 121
5.3.1  常用的內置過濾器 121
5.3.2  國際化標簽和過濾器 130
5.3.3  其他標簽和過濾器庫 131
5.3.4  實戰演練:使用過濾器提取列表和字典中的內容 131
5.4  模板繼承 133
5.4.1  模板繼承介紹 133
5.4.2  實戰演練:使用模板繼承 135
5.5  自定義模板標簽和過濾器 137
5.5.1  基本方法 137
5.5.2  自定義模板過濾器 138
5.5.3  自定義模板標簽 139
5.5.4  實戰演練:創建自定義模板過濾器 142
第6章  表單 145
6.1  表單介紹 146
6.1.1  HTML表單介紹 146
6.1.2  Django中的表單 147
6.2  使用表單 148
6.2.1  使用表單類Form的方法 148
6.2.2  實戰演練:第一個表單程序 151
6.3  表單的典型應用 152
6.3.1  表單forms的設計與使用 152
6.3.2  實戰演練:簡易用戶登錄驗證系統 160
6.3.3  實戰演練:文件上傳系統 163
第7章  站點配置和管理 169
7.1  系統配置文件 170
7.1.1  配置文件的特性 170
7.1.2  基本配置 170
7.2  靜態文件 172
7.2.1  靜態文件介紹 173
7.2.2  實戰演練:在登錄表單中使用靜態文件 174
7.3  Django Admin管理 176
7.3.1  Django Admin基礎 176
7.3.2  實戰演練:使用Django Admin系統 179
第8章  站點的安全性 183
8.1  Django安全概述 184
8.1.1  跨站腳本(XSS)防護 184
8.1.2  跨站請求偽造(CSRF)防護 184
8.1.3  SQL註入保護 185
8.1.4  點擊劫持保護 185
8.1.5  SSL/HTTPS 185
8.1.6  Host 協議頭驗證 186
8.2  使用Cookie和Session 186
8.2.1  Django框架中的Cookie 186
8.2.2  Django框架中的Session 190
8.3  點擊劫持保護 194
8.3.1  點擊劫持的例子 194
8.3.2  使用X-Frame-Options 195
8.4  跨站請求偽造保護 196
8.4.1  在Django中使用CSRF防護的方法 196
8.4.2  裝飾器方法 197
8.4.3  實戰演練:求和計時器 198
8.4.4  實戰演練:每日任務管理器 200
8.5  加密簽名 203
8.6  中間件 206
8.7  實戰演練:安全版的仿CSDN登錄驗證系統 208
8.7.1  系統設置 208
8.7.2  會員註冊和登錄驗證模塊 209
8.7.3  博客發布模塊 214
第9章  站點管理 219
9.1  Django Web國際化 220
9.1.1  Django中Python程序的國際化 220
9.1.2  Django中模板的國際化 221
9.1.3  Django中URL模式的國際化 224
9.2  Django Web本地化 227
9.2.1  Message File(消息文件) 227
9.2.2  編譯消息文件 228
9.2.3  本地格式化 228
9.3  國際化和本地化的應用 230
9.3.1  實戰演練:展示法語環境 230
9.3.2  實戰演練:創建多語言環境 233
9.4  網站地圖sitemap 236
9.4.1  安裝sitemap 236
9.4.2  sitemap的初始化 236
9.4.3  類Sitemap的成員 237
9.4.4  快捷類GenericSitemap 238
9.4.5  靜態視圖的Sitemap 239
9.4.6  創建網站地圖索引 240
9.4.7  模板定製 240
9.4.8  實戰演練:在Django博客系統中創建網站地圖 241
第10章  系統優化、調試和部署 245
10.1  Django性能與優化 246
10.1.1  什麽是優化? 246
10.1.2  Django中的性能優化技術 246
10.1.3  實戰演練:在Django博客系統中添加django-debug-toolbar面板 249
10.2  Django緩存處理 254
10.2.1  緩存的思路 254
10.2.2  設置緩存 255
10.2.3  站點級緩存 260
10.2.4  緩存單個view視圖 261
10.2.5  在URLconf中指定視圖 緩存 262
10.2.6  模板片段緩存 262
10.2.7  實戰演練:在上傳系統中使用Redis緩存 263
10.3  日誌系統 268
10.3.1  在Django視圖中使用logging 268
10.3.2  在Django中配置logging 269
10.3.3  自定義logging配置和禁用logging配置 272
10.3.4  Django對logging模塊的 擴展 272
10.3.5  實戰演練:在日誌中記錄用戶的訪問操作 273
第11章  郵件發送模塊 277
11.1  實戰演練:使用smtplib發送 郵件 278
11.2  使用django.core.mail發送郵件 280
11.2.1  django.core.mail基礎 280
11.2.2  實戰演練:使用django.core.mail實現一個郵件發送程序 282
11.3  實戰演練:使用郵箱發送驗證碼的用戶註冊、登錄驗證系統 284
第12章  用戶登錄驗證模塊 291
12.1  使用auth實現登錄驗證系統 292
12.1.1  auth模塊基礎 292
12.1.2  實戰演練:帶登錄驗證功能的簡易新聞系統 297
12.2  使用django-allauth實現登錄驗證 系統 301
12.2.1  django-allauth框架基礎 301
12.2.2  實戰演練:在django-allauth中使用百度賬戶實現用戶登錄系統 304
第13章  計數器模塊 311
13.1  實戰演練:一個簡單的網頁 計數器 312
13.2  實戰演練:使用數據庫保存統計 數據 313
13.2.1  創建Django工程 313
13.2.2  實現數據庫 313
13.2.3  配置URL 314
13.2.4  實現視圖 315
13.2.5  實現模板 315
13.2.6  調試運行 316
13.3  實戰演練:使用第三方庫實現訪問計數器 316
13.3.1  準備工作 316
13.3.2  配置URL 317
13.3.3  實現數據庫 317
13.3.4  實現視圖 318
13.3.5  實現模板 319
13.3.6  調試運行 321
第14章  Ajax模塊 323
14.1  Ajax技術的原理 324
14.2  實戰演練:無刷新計算器 325
14.3  Ajax上傳和下載系統 326
14.3.1  實現文件上傳功能 326
14.3.2  實現文件下載功能 331
第15章  分頁模塊 335
15.1  類Paginator和類Page 336
15.1.1  類Paginator 336
15.1.2  類Page 337
15.1.3  實戰演練:實現簡單的分頁 337
15.2  實戰演練:自定義的美觀的分頁程序 339
15.3  實戰演練:使用分頁顯示網絡信息 343
15.3.1  創建工程 344
15.3.2  設計視圖 344
15.3.3  設計URL導航 344
15.3.4  實現模板文件 345
第16章  富文本編輯器模塊 347
16.1  第三方庫django-mdeditor 348
16.1.1  django-mdeditor介紹 348
16.1.2  實戰演練:使用django- mdeditor實現富文本編輯器 348
16.2  第三方庫django-ckeditor 352
16.2.1  django-ckeditor介紹 352
16.2.2  實戰演練:在博客系統中 使用django-ckeditor富文本編輯器 353
第17章  綜合實戰:民宿信息可視化 357
17.1  系統背景介紹 358
17.2  爬蟲抓取信息 358
17.2.1  系統配置 359
17.2.2  Item處理 359
17.2.3  具體爬蟲 360
17.2.4  破解反扒字體加密 360
17.2.5  下載器中間件 363
17.2.6  保存爬蟲信息 367
17.3  數據可視化 370
17.3.1  數據庫設計 370
17.3.2  視圖顯示 373


作者介紹


孟令菊,華中科技大學計算機碩士,現就職於上海機鋒科技公司擔任項目經理。
Python開發工程師,Android開發工程師,熱衷於移動開底層系統架構、驅動開發、AI開發的研究和具體工作,對Python人工智能的架構設計和實現原理有非常深刻的認識和理解,應用開發經驗也十分豐富。




相關書籍

Storm 應用實踐 : 實時事務處理之策略

作者 肖恩 T.艾倫 (Sean T. Allen) 馬修·揚科夫斯基 (Matthew Jankowski)

2021-06-01

JavaScript 實戰詳解

作者 千鋒教育高教產品研發部

2021-06-01

JavaScript高效程序設計:寫給Web編程初學者的入門指導書!

作者 Kirupa Chinnathambi 譯者:葉梓華

2021-06-01