Django 3 Web 應用開發從零開始學 (視頻教學版)
內容描述
本書詳解Django框架的用法,精選簡單、實用和功能流行的Django代碼示例,幫助讀者掌握Django框架及其相關技術棧的開發。全書講解清晰、通俗易懂、重點突出、示例豐富、代碼精練,基本涵蓋Django框架的應用開發技術,可以幫助讀者快速掌握Django框架的開發方法。本書配套示例源碼、課件與教學視頻。 全書共分13章,內容包括Django框架基礎與環境搭建、框架常用配置、模型、視圖與路由、模板、表單、後台管理、異常、測試、認證系統、安全與國際化,以及常用Web應用工具等。另外,為了突出項目實戰的特點,本書還講解了基於Django框架開發的2個實戰項目,可以幫助讀者進一步掌握Django應用的開發流程。 本書適合Web應用開發初學者快速掌握Django框架,以及系統設計人員提高設計水平,也適合高等院校、中職學校和培訓機構電腦及相關專業的師生教學參考。
目錄大綱
1章 Django框架基礎與環境搭建 1
1.1 認識Django框架 1
1.1.1 誕生與發展 1
1.1.2 MTV設計原理 2
1.1.3 Django框架的View視圖展示機制 3
1.1.4 Django框架的用戶作流程 4
1.1.5 Django框架的主要特點 6
1.2 搭建Django開發環境 6
1.2.1 安裝Python語言環境 6
1.2.2 安裝Django框架10
1.3 開發一個Django框架應用程序13
1.3.1 通過命令行構建Django應用13
1.3.2 通過PyCharm開發Django應用15
1.3.3 添加代碼並測試Django應用18
1.4 本章小結19
2章 Django框架常用配置20
2.1 應用的配置文件settings.py 20
2.2 應用的基礎路徑21
2.3 應用的啟動模式22
2.4 應用的站點訪問權限22
2.5 應用的App配置22
2.6 應用的中間件配置23
2.7 應用的模板配置24
2.8 應用的數據庫配置24
2.9 應用的根級路由配置26
2.10 應用的語言配置26
2.11 應用的時區配置27
2.12 應用的靜態文件配置27
2.13 本章小結27
3章 Django框架模型28
3.1 認識模型28
3.1.1 模型的作用28
3.1.2 Django模型與ORM 29
3.1.3 Django模型與MySQL 29
3.2 模型使用入門30
3.2.1 定義模型30
3.2.2 設計Django模型代碼31
3.2.3 使用Django模型32
3.3 Django模型字段32
3.3.1 字段的類型32
3.3.2 字段的選項33
3.3.3 關聯關係字段—外鍵36
3.3.4 關聯關係字段—一對一關係37
3.3.5 關聯關係字段—多對多關係38
3.3.6 自定義模型字段40
3.4 Meta類41
3.5 Django模型屬性與方法42
3.5.1 模型屬性42
3.5.2 模型方法42
3.5.3 重寫之前定義的模型方法43
3.6 Django模型繼承45
3.6.1 什麼是模型繼承45
3.6.2 抽象基類45
3.6.3 Meta繼承46
3.6.4 related_name和related_query_name屬性49
3.6.5 多表繼承51
3.6.6 Meta和多表繼承52
3.6.7 繼承與反向關係53
3.6.8 代理模型54
3.6.9 代理模型繼承和未託管模型56
3.6.10 多重繼承56
3.7 通過包管理模型58
3.8 本章小結58
4章 Django框架視圖與路由59
4.1 Django框架視圖的概念59
4.2 URL路由配置60
4.2.1 什麼是URL路由基礎60
4.2.2 Django如何處理請求61
4.2.3 PATH路徑轉換器63
4.2.4 使用正則表達式64
4.2.5 URLconf在什麼上查找65
4.2.6 指定視圖參數的默認值66
4.2.7 包含其他的URLconf模塊67
4.2.8 傳遞額外參數給視圖函數68
4.2.9 反向解析70
4.2.10 命名空間72
4.3 視圖函數75
4.3.1 什麼是視圖函數75
4.3.2 簡單的視圖函數76
4.3.3 返回錯誤視圖79
4.3.4 直接返回狀態碼視圖82
4.3.5 HTTP 404異常視圖86
4.3.6 自定義錯誤頁面90
4.3.7 異步視圖初步92
4.4 快捷函數93
4.4.1 什麼是快捷函數93
4.4.2 render()快捷函數93
4.4.3 redirect()快捷函數95
4.4.4 get_object_or_404()快捷函數97
4.4.5 get_list_or_404()快捷函數99
4.5 視圖裝飾器100
4.5.1 允許HTTP方法100
4.5.2 gzip_page()方法101
4.5.3 其他裝飾器101
4.6 內置視圖101
4.6.1 serve視圖文件102
4.6.2 404錯誤視圖103
4.6.3 500錯誤視圖104
4.6.4 403錯誤視圖104
4.6.5 400錯誤視圖105
4.7 請求與響應對象106
4.7.1 HTTP信息傳遞的根本106
4.7.2 請求對象106
4.7.3 查詢字典對象108
4.7.4 響應對象108
4.7.5 JsonResponse對象109
4.7.6 StreamingHttpResponse對象110
4.7.7 FileResponse對象111
4.8 模板響應對象111
4.8.1 HttpResponse對象111
4.8.2 SimpleTemplateResponse對象111
4.8.3 TemplateResponse對象112
4.8.4 使用SimpleTemplateResponse和TemplateResponse 114
4.9 實現文件上傳114
4.10 本章小結116
5章 Django框架模板117
5.1 Django框架模板基礎117
5.2 配置模板引擎118
5.2.1 添加模板引擎支持118
5.2.2 模板引擎用法119
5.2.3 內置後端122
5.2.4 自定義後端124
5.2.5 自定義模板引擎的集成調試125
5.3 模板引擎語法126
5.3.1 模板引擎語法基礎126
5.3.2 變量126
5.3.3 標籤131
5.3.4 過濾器139
5.3.5 算術運算145
5.3.6 特殊的標籤和過濾器155
5.3.7 註釋156
5.4 自定義模板標籤和過濾器156
5.4.1 前置配置基礎156
5.4.2 自定義模板過濾器158
5.4.3 自定義模板標籤161
5.5 本章小結173
6章 Django框架表單174
6.1 Django框架表單基礎174
6.1.1 HTML表單174
6.1.2 HTTP方法:GET和POST 175
6.1.3 Django在表單中的角色176
6.1.4 Form類176
6.1.5 實例化、處理和渲染表單176
6.1.6 創建一個表單177
6.2 使用Django框架表單177
6.2.1 使用Form類構建表單177
6.2.2 視圖處理178
6.2.3 模板處理180
6.2.4 提交模板180
6.2.5 測試表單應用181
6.3 詳解Django Form類182
6.3.1 模型與Form類182
6.3.2 綁定的和未綁定的表單實例183
6.3.3 表單字段與Widget控件183
6.3.4 使用表單模板189
6.3.5 手動渲染表單字段195
6.3.6 渲染表單錯誤信息197
6.3.7 遍歷表單字段199
6.3.8 可複用的表單模板200
6.4 本章小結202
7章 Django框架後台管理203
7.1 創建後台管理員賬戶203
7.2 登錄後台模塊205
7.3 管理自定義模型206
7.4 管理複雜模型209
7.5 定制後台管理模型213
7.6 註冊裝飾器219
7.7 本章小結220
8章 Django框架異常管理與自動化測試221
8.1 Django框架異常處理221
8.1.1 URL Resolver eceptions 223
8.1.2 數據庫異常223
8.2 Django框架自動化測試224
8.2.1 自動化測試概述224
8.2.2 編寫和運行自動化測試224
8.2.3 數據庫自動化測試227
8.3 Django框架測試工具231
8.3.1 使用測試工具模擬發送GET請求232
8.3.2 使用測試工具模擬發送POST請求234
8.4 本章小結236
9章 用戶Auth認證系統237
9.1 用戶Auth認證系統介紹237
9.2 安裝用戶Auth認證模塊238
9.3 使用Django身份驗證系統238
9.3.1 用戶對象介紹238
9.3.2 創建用戶對象239
9.3.3 創建級用戶239
9.3.4 修改密碼239
9.3.5 驗證用戶240
9.3.6 默認權限241
9.3.7 用戶組241
9.3.8 權限與授權241
9.3.9 Web請求中的身份驗證242
9.3.10 在管理員中管理用戶242
9.4 本章小結242
10章 Django安全與國際化243
10.1 Django框架安全243
10.1.1 安全問題概述243
10.1.2 點擊劫持保護245
10.1.3 跨站點請求偽造CSRF保護245
10.1.4 登錄加密246
10.1.5 保護SECRET_KEY 246
10.1.6 登錄加密安全中間件246
10.2 Django國際化和本地化247
10.2.1 國際化與本地化概述247
10.2.2 國際化248
10.2.3 本地化249
10.3 本章小結249
11章 常用的Web應用程序工具250
11.1 Django緩存250
11.1.1 緩存的由來250
11.1.2 設置緩存251
11.1.3 數據庫緩存252
11.2 Django日誌254
11.2.1 Logger 254
11.2.2 Handler 254
11.2.3 過濾器255
11.2.4 Formatter 255
11.2.5 使用日誌記錄255
11.3 發送郵件260
11.4 分頁262
11.5 消息框架263
11.6 序列化263
11.7 會話264
11.8 靜態文件管理264
11.9 數據驗證265
11.10 本章小結265
12章 Django框架實戰1—投票應用266
12.1 構建投票應用項目架構266
12.1.1 創建投票項目266
12.1.2 創建投票應用268
12.2 模型和Admin站點定義271
12.2.1 數據庫配置271
12.2.2 創建模型272
12.2.3 激活模型273
12.2.4 添加數據275
12.2.5 模型自定義方法278
12.2.6 管理後台站點279
12.3 視圖與模板282
12.3.1 定義視圖函數283
12.3.2 使用模板優化默認視圖284
12.3.3 去除模板中的URL硬編碼286
12.3.4 為URL模塊添加命名空間288
12.3.5 使用模板優化detail視圖289
12.4 表單與通用視圖290
12.4.1 編寫表單290
12.4.2 添加vote視圖路由291
12.4.3 定義vote視圖函數292
12.4.4 定義results視圖函數293
12.4.5 定義results模板294
12.4.6 添加results視圖路由294
12.5 加入靜態文件296
12.6 本章小結296
13章 Django框架實戰2—個人博客應用297
13.1 構建博客應用項目297
13.2 定義模型和Admin站點299
13.3 編寫博客視圖、表單和模板302
13.3.1 列表索引視圖與模板302
13.3.2 詳情視圖與模板304
13.3.3 編輯視圖、表單與模板306
13.4 加入靜態文件308
13.5 本章小結308
作者介紹
劉亮亮,河南農業大學特聘教授,中南大學計算機科學與技術專業博士。
本人主要從事軟件開發、大數據挖掘方面的研究。
王金柱,有著10多年豐富的IT從業經歷,對JavaScript語言、jQuery框架、Node.js、React等Web前端開發有著獨到的經驗,精通HTML/XHTML、CSS與PHP等應用開發。
曾從事過多家大型央企與上市公司的企業級Web系統平台項目的前端模塊開發工作,出版過多本前端、後端開發類的圖書。