內容簡介
全流程講解Django Web各大組件,依次擊破技術難點墊局嚷霸;凝聚6年一線大廠開發經驗,帶你領略前沿開發技巧
圖書目錄
第1篇 開發工具及框架概述
第1章 Django概述 2
1.1 Web基礎 2
1.1.1 Web發展 2
1.1.2 網路協定架構 3
1.1.3 套用軟體架構 4
1.1.4 第一個Web程式 6
1.2 Django簡介 7
1.2.1 MVC和MVT 8
1.2.2 Django 2.x新特性 10
1.2.3 Django的安裝 12
1.2.4 安裝驗證 13
1.3 入門程式開發 13
1.3.1 創判籃諒建項目 14
1.3.2 資料庫同步 14
1.3.3 創建管理用戶 15
1.3.4 訪問測試 15
1.4 項目實戰:部落格開發 17
1.4.1 項目概述 17
1.4.2 項目創建初始化 17
1.4.3 數據模槳煮簽才型定義 18
1.4.4 資料庫同步配置 19
1.4.5 後台管理配置 20
1.4.6 項目基本配置 22
1.4.7 添加網頁模板 24
1.4.8 視圖處理函式 26
1.4.9 路由配置關聯 27
1.4.10 軟體運行測試 29
1.5 本章小結 30
第2章 Django數據模型與資料庫 31
2.1 項目中的數據模型 31
2.1.1 模型類 31
2.1.2 欄位限定規則 33
2.1.3 屬性欄位類型 36
2.1.4 索引操作 42
2.1.5 元數據選項 43
2.2 資料庫處理 47
2.2.1 資料庫連線 47
2.2.2 模型數據操作命令 50
2.2.3 資料庫同步問題簡述 53
2.2.4 數據模型增刪改查 54
2.3 數據模型關舉項聯處理 56
2.3.1 什麼是模型關囑墓剃聯訂背享 56
2.3.2 一對多關聯 57
2.3.3 一對一關聯 60
2.3.4 多對多關聯 62
2.3.5 自關聯 64
2.4 數據查詢操作 65
2.4.1 模型數據基本查詢 65
2.4.2 模型數據條件查詢 67
2.4.3 Q、F對象 68
2.4.4 模型操作關聯查詢 70
2.4.5 自定義SQL語句查詢 71
2.5 資料庫事務管理 72
2.5.1 Django中的事務管理 72
2.5.2 事務管理操作 73
2.6 本章小結 74
第3章 視圖模板 75
3.1 視圖模板概述 75
3.2 路由 76
3.2.1 路由概述 76
3.2.2 路由對象 77
3.2.3 路由級聯包含 78
3.2.4 路由中的正則匹配 79
3.2.5 路由傳遞位置參數 80
3.2.6 路由路徑轉換器 82
3.2.7 路由反向解析 84
3.2.8 路由指定錯誤頁面 85
3.3 視圖處理函式 88
3.3.1 視圖處理函式的聲明和規範 88
3.3.2 數據回響快捷處理方式 89
3.3.3 視圖相關裝飾器 93
3.3.4 請求對象和回響對象 94
3.3.5 案例開發 97
3.4 模板語法 104
3.4.1 模板語法基礎 105
3.4.2 常見的模板標籤操作 106
3.4.3 常見的過濾器操作 109
3.4.4 模板高級操作:模板繼承 112
3.4.5 案例開發:部落格網頁數據渲染 115
3.5 靜態檔案處理 121
3.5.1 項目開發架構規範 121
3.5.2 靜態檔案配置 122
3.5.3 子項目的靜態檔案配置 124
3.5.4 案例開發:完善部落格項目的網頁視圖 126
3.6 自定義模板標籤和模板過濾器 128
3.6.1 項目準備 129
3.6.2 自定義模板過濾器 130
3.6.3 自定義模板標籤 132
3.7 本章小結 135
第4章 表單處理 136
4.1 表單概述 136
4.1.1 普通表單處理 137
4.1.2 GET參數處理 139
4.1.3 POST參數處理 140
4.1.4 跨站請求偽造 142
4.1.5 檔案上傳 144
4.2 基於Form的表單封裝 149
4.2.1 表單基本操作 149
4.2.2 限定屬性和欄位描述 152
4.2.3 表戀牛譽單視圖操作 156
4.3 基於ModelForm的高級表單 160
4.3.1 ModelForm概述 160
4.3.2 ModelForm欄位屬性 162
4.3.3 Meta屬性選項 164
4.3.4 ModelForm中的數據提交 166
4.3.5 ModelForm中的數據初始化 167
4.3.6 ModelForm中的類型關聯關係 168
4.3.7 表單實例工廠 170
4.3.8 自定義驗證規則 171
4.4 項目實例:表單重構 172
4.4.1 用戶註冊表單重構 173
4.4.2 用戶登錄表單重構 176
4.4.3 用戶信息表單重構 179
4.4.4 發表文章表單重構 180
4.4.5 表單重構注意問題 183
4.5 本章小結 183
第2篇 典型模組開發
第5章 後台管理系統 186
5.1 後台管理系統基本操作 186
5.1.1 初始化管理平台 187
5.1.2 管理平台的基本操作 189
5.2 數據模型的註冊和管理 191
5.3 數據模型自定義操作 193
5.3.1 數據模型註冊 193
5.3.2 數據模型管理 194
5.3.3 後台管理系統操作 203
5.4 Xadmin管理平台 205
5.4.1 環境配置 205
5.4.2 系統主題配置管理 208
5.4.3 管理平台數據配置 209
5.4.4 項目數據配置管理 210
5.5 本章小結 211
第6章 快取 212
6.1 關於網站性能最佳化的建議 212
6.1.1 前端最佳化 213
6.1.2 後端最佳化 215
6.1.3 再說快取 217
6.1.4 快取問題 218
6.2 Django中的快取 221
6.2.1 基於開發調試的快取配置 221
6.2.2 基於本地記憶體的快取配置 222
6.2.3 基於檔案的快取配置 222
6.2.4 基於資料庫的快取配置 223
6.2.5 基於Memcached的快取配置 223
6.2.6 基於Redis的快取配置 224
6.2.7 數據快取操作——全站快取 225
6.2.8 數據快取操作——視圖快取 227
6.2.9 數據快取操作——模板快取 228
6.2.10 數據快取操作——低級快取 228
6.2.11 數據快取操作——分散式帶來的問題 232
6.2.12 數據快取操作——Vary header 232
6.3 項目實戰:快取操作 234
6.3.1 快取環境搭建 234
6.3.2 配置快取支持 236
6.3.3 網頁視圖快取 236
6.3.4 視圖模板快取 237
6.3.5 數據更新場景下的快取處理 238
6.4 本章小結 240
第7章 日誌處理——必不可少的記錄 241
7.1 歷史信息管理——日誌的重要性 241
7.2 軟體開發先鋒官——日誌核心組件 243
7.2.1 記錄器對象——logger 243
7.2.2 操作對象——handler 244
7.2.3 過濾器對象——filter 244
7.2.4 格式化對象——formatter 245
7.3 Django 2.x項目中的日誌操作 246
7.3.1 日誌基本操作語法 246
7.3.2 通過命名空間實現日誌結構化管理 247
7.3.3 記錄到控制台的日誌配置規則 248
7.3.4 記錄到檔案的日誌配置規則 249
7.3.5 Django中的日誌模組API 251
7.3.6 Django中的默認日誌配置 252
7.4 項目實戰——日誌記錄 252
7.5 本章小結 256
第8章 Django 2.x擴展功能 257
8.1 Ajax異步數據互動 257
8.1.1 Ajax的底層JavaScript實現 259
8.1.2 Ajax jQuery實現 262
8.1.3 文章評論異步互動 264
8.2 Django郵件操作 268
8.2.1 Web中的郵件功能 269
8.2.2 Django中的郵件配置 269
8.2.3 郵件的傳送 270
8.2.4 預防郵件頭注入漏洞 273
8.2.5 EmailMessage 275
8.2.6 用戶賬號激活 279
8.3 數據查詢分頁 283
8.3.1 Django的數據分頁模組 284
8.3.2 文章分頁展示功能 286
8.4 站點地圖 288
8.4.1 Django中的站點地圖 288
8.4.2 項目實戰:站點地圖操作 292
8.5 許可權認證 295
8.5.1 身份認證模組 295
8.5.2 許可權管理架構 304
8.5.3 資源訪問管理 306
8.6 本章小結 310
第9章 Django REST框架 311
9.1 面向接口編程概述 311
9.1.1 什麼是接口 311
9.1.2 接口定義規範 312
9.1.3 接口編程套用 313
9.2 Django rest_framework 315
9.2.1 安裝與配置 315
9.2.2 創建項目 316
9.2.3 數據序列化 317
9.2.4 視圖操作 317
9.2.5 路由映射 318
9.2.6 分頁配置 318
9.2.7 數據訪問測試 318
9.3 數據序列化 320
9.3.1 項目初始化 320
9.3.2 自定義數據模型 321
9.3.3 序列化組件操作 321
9.3.4 視圖處理組件 322
9.3.5 數據接口測試 324
9.3.6 數據接口測試工具 324
9.4 請求和回響 326
9.4.1 請求對象和回響對象 326
9.4.2 視圖渲染 326
9.4.3 業務處理 327
9.4.4 請求數據格式化 328
9.5 CBV構建 329
9.5.1 基於類型的視圖組件構建 329
9.5.2 基於類型的路由完善 330
9.5.3 基於類型的視圖功能擴展 331
9.5.4 基於類型的視圖功能封裝 333
9.6 身份認證和許可權管理 334
9.6.1 創建基礎項目 334
9.6.2 許可權限制 337
9.6.3 身份認證API 338
9.6.4 自定義認證許可權 340
9.7 規範構建數據接口 341
9.8 視圖集及路由配置 344
9.9 本章小結 346
第3篇 項目實戰
第10章 項目實戰——社區交流平台 348
10.1 項目開發流程 348
10.1.1 前後端耦合開發模式 348
10.1.2 前後端分離開發模式 349
10.2 需求分析 350
10.2.1 用戶模組 351
10.2.2 文章模組 353
10.2.3 評論模組 353
10.2.4 私信模組 354
10.2.5 工具模組 355
10.3 詳細設計 355
10.3.1 系統數據模型設計 355
10.3.2 用戶模組功能流程設計 357
10.3.3 文章模組功能流程設計 359
10.3.4 評論模組功能流程設計 360
10.3.5 私信模組功能流程設計 360
10.3.6 輔助功能 361
10.4 開發與測試 361
10.4.1 用戶模組功能開發 362
10.4.2 文章模組功能開發 379
10.4.3 評論模組功能開發 391
10.4.4 私信模組功能開發 394
10.4.5 輔助功能開發 396
10.5 雲伺服器項目部署 400
10.5.1 雲伺服器的配置選型 400
10.5.2 伺服器環境初始化 401
10.5.3 項目遠程部署概述 402
10.5.4 項目部署和備案管理 403
10.6 本章小結 407
第11章 項目實戰——圖書管理系統 408
11.1 項目需求分析及接口規範定義 408
11.1.1 項目環境及技術選型 408
11.1.2 需求分析:用例分析 409
11.1.3 詳細設計:流程設計 411
11.2 基於Vue.js的前端項目構建 414
11.2.1 項目初始化結構 414
11.2.2 項目結構完善及路由分析 417
11.2.3 圖書管理員及普通會員登錄功能 421
11.2.4 圖書信息查詢界面設計及路由分析 427
11.3 基於Django的後端項目構建 432
11.3.1 項目初始化結構 432
11.3.2 數據類型定義 433
11.3.3 序列化數據接口開發 435
11.3.4 用戶查詢接口 436
11.3.5 用戶登錄接口 438
11.3.6 圖書查詢接口 439
11.3.7 圖書存放區域查詢接口 442
11.3.8 圖書借閱處理接口重構 444
11.4 業務功能聯調 446
11.4.1 圖書檢索功能調測 447
11.4.2 用戶登錄功能調測 450
11.4.3 JWT認證 455
11.4.4 圖書借閱功能調測 458
11.5 本章小結 460
3.2.4 路由中的正則匹配 79
3.2.5 路由傳遞位置參數 80
3.2.6 路由路徑轉換器 82
3.2.7 路由反向解析 84
3.2.8 路由指定錯誤頁面 85
3.3 視圖處理函式 88
3.3.1 視圖處理函式的聲明和規範 88
3.3.2 數據回響快捷處理方式 89
3.3.3 視圖相關裝飾器 93
3.3.4 請求對象和回響對象 94
3.3.5 案例開發 97
3.4 模板語法 104
3.4.1 模板語法基礎 105
3.4.2 常見的模板標籤操作 106
3.4.3 常見的過濾器操作 109
3.4.4 模板高級操作:模板繼承 112
3.4.5 案例開發:部落格網頁數據渲染 115
3.5 靜態檔案處理 121
3.5.1 項目開發架構規範 121
3.5.2 靜態檔案配置 122
3.5.3 子項目的靜態檔案配置 124
3.5.4 案例開發:完善部落格項目的網頁視圖 126
3.6 自定義模板標籤和模板過濾器 128
3.6.1 項目準備 129
3.6.2 自定義模板過濾器 130
3.6.3 自定義模板標籤 132
3.7 本章小結 135
第4章 表單處理 136
4.1 表單概述 136
4.1.1 普通表單處理 137
4.1.2 GET參數處理 139
4.1.3 POST參數處理 140
4.1.4 跨站請求偽造 142
4.1.5 檔案上傳 144
4.2 基於Form的表單封裝 149
4.2.1 表單基本操作 149
4.2.2 限定屬性和欄位描述 152
4.2.3 表單視圖操作 156
4.3 基於ModelForm的高級表單 160
4.3.1 ModelForm概述 160
4.3.2 ModelForm欄位屬性 162
4.3.3 Meta屬性選項 164
4.3.4 ModelForm中的數據提交 166
4.3.5 ModelForm中的數據初始化 167
4.3.6 ModelForm中的類型關聯關係 168
4.3.7 表單實例工廠 170
4.3.8 自定義驗證規則 171
4.4 項目實例:表單重構 172
4.4.1 用戶註冊表單重構 173
4.4.2 用戶登錄表單重構 176
4.4.3 用戶信息表單重構 179
4.4.4 發表文章表單重構 180
4.4.5 表單重構注意問題 183
4.5 本章小結 183
第2篇 典型模組開發
第5章 後台管理系統 186
5.1 後台管理系統基本操作 186
5.1.1 初始化管理平台 187
5.1.2 管理平台的基本操作 189
5.2 數據模型的註冊和管理 191
5.3 數據模型自定義操作 193
5.3.1 數據模型註冊 193
5.3.2 數據模型管理 194
5.3.3 後台管理系統操作 203
5.4 Xadmin管理平台 205
5.4.1 環境配置 205
5.4.2 系統主題配置管理 208
5.4.3 管理平台數據配置 209
5.4.4 項目數據配置管理 210
5.5 本章小結 211
第6章 快取 212
6.1 關於網站性能最佳化的建議 212
6.1.1 前端最佳化 213
6.1.2 後端最佳化 215
6.1.3 再說快取 217
6.1.4 快取問題 218
6.2 Django中的快取 221
6.2.1 基於開發調試的快取配置 221
6.2.2 基於本地記憶體的快取配置 222
6.2.3 基於檔案的快取配置 222
6.2.4 基於資料庫的快取配置 223
6.2.5 基於Memcached的快取配置 223
6.2.6 基於Redis的快取配置 224
6.2.7 數據快取操作——全站快取 225
6.2.8 數據快取操作——視圖快取 227
6.2.9 數據快取操作——模板快取 228
6.2.10 數據快取操作——低級快取 228
6.2.11 數據快取操作——分散式帶來的問題 232
6.2.12 數據快取操作——Vary header 232
6.3 項目實戰:快取操作 234
6.3.1 快取環境搭建 234
6.3.2 配置快取支持 236
6.3.3 網頁視圖快取 236
6.3.4 視圖模板快取 237
6.3.5 數據更新場景下的快取處理 238
6.4 本章小結 240
第7章 日誌處理——必不可少的記錄 241
7.1 歷史信息管理——日誌的重要性 241
7.2 軟體開發先鋒官——日誌核心組件 243
7.2.1 記錄器對象——logger 243
7.2.2 操作對象——handler 244
7.2.3 過濾器對象——filter 244
7.2.4 格式化對象——formatter 245
7.3 Django 2.x項目中的日誌操作 246
7.3.1 日誌基本操作語法 246
7.3.2 通過命名空間實現日誌結構化管理 247
7.3.3 記錄到控制台的日誌配置規則 248
7.3.4 記錄到檔案的日誌配置規則 249
7.3.5 Django中的日誌模組API 251
7.3.6 Django中的默認日誌配置 252
7.4 項目實戰——日誌記錄 252
7.5 本章小結 256
第8章 Django 2.x擴展功能 257
8.1 Ajax異步數據互動 257
8.1.1 Ajax的底層JavaScript實現 259
8.1.2 Ajax jQuery實現 262
8.1.3 文章評論異步互動 264
8.2 Django郵件操作 268
8.2.1 Web中的郵件功能 269
8.2.2 Django中的郵件配置 269
8.2.3 郵件的傳送 270
8.2.4 預防郵件頭注入漏洞 273
8.2.5 EmailMessage 275
8.2.6 用戶賬號激活 279
8.3 數據查詢分頁 283
8.3.1 Django的數據分頁模組 284
8.3.2 文章分頁展示功能 286
8.4 站點地圖 288
8.4.1 Django中的站點地圖 288
8.4.2 項目實戰:站點地圖操作 292
8.5 許可權認證 295
8.5.1 身份認證模組 295
8.5.2 許可權管理架構 304
8.5.3 資源訪問管理 306
8.6 本章小結 310
第9章 Django REST框架 311
9.1 面向接口編程概述 311
9.1.1 什麼是接口 311
9.1.2 接口定義規範 312
9.1.3 接口編程套用 313
9.2 Django rest_framework 315
9.2.1 安裝與配置 315
9.2.2 創建項目 316
9.2.3 數據序列化 317
9.2.4 視圖操作 317
9.2.5 路由映射 318
9.2.6 分頁配置 318
9.2.7 數據訪問測試 318
9.3 數據序列化 320
9.3.1 項目初始化 320
9.3.2 自定義數據模型 321
9.3.3 序列化組件操作 321
9.3.4 視圖處理組件 322
9.3.5 數據接口測試 324
9.3.6 數據接口測試工具 324
9.4 請求和回響 326
9.4.1 請求對象和回響對象 326
11.2.2 項目結構完善及路由分析 417
11.2.3 圖書管理員及普通會員登錄功能 421
11.2.4 圖書信息查詢界面設計及路由分析 427
11.3 基於Django的後端項目構建 432
11.3.1 項目初始化結構 432
11.3.2 數據類型定義 433
11.3.3 序列化數據接口開發 435
11.3.4 用戶查詢接口 436
11.3.5 用戶登錄接口 438
11.3.6 圖書查詢接口 439
11.3.7 圖書存放區域查詢接口 442
11.3.8 圖書借閱處理接口重構 444
11.4 業務功能聯調 446
11.4.1 圖書檢索功能調測 447
11.4.2 用戶登錄功能調測 450
11.4.3 JWT認證 455
11.4.4 圖書借閱功能調測 458
11.5 本章小結 460