《Django Web開發實例精解》是2023年4月1日清華大學出版社出版的圖書,作者:[美]愛達斯·班德拉蒂斯 等著 張華臻 譯。
基本介紹
- 中文名:Django Web開發實例精解
- 作者:[美]愛達斯·班德拉蒂斯
- 譯者:張華臻
- 出版時間:2023年4月1日
- 出版社:清華大學出版社
- ISBN:9787302631316
- 定價:159 元
- 印次:1-1
- 印刷日期:2023.04.06
內容簡介,圖書目錄,
內容簡介
《Django Web開發實例精解》詳細闡述了與Django相關的基本解決方案,主要包括模型和資料庫結構、表單和視圖、模板和JavaScript、自定義模板過濾器和標籤、模型管理、安全和性能、層次結構、導入和導出數據、測試、部署、維護等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。
圖書目錄
目 錄
第1章 Django 3.0開始之旅 1
1.1 簡介 1
1.2 技術需求 2
1.3 與虛擬環境協同工作 2
1.3.1 準備工作 2
1.3.2 實現方式 3
1.3.3 工作方式 3
1.3.4 延伸閱讀 3
1.4 創建一個項目檔案結構 4
1.4.1 準備工作 4
1.4.2 實現方式 4
1.4.3 工作方式 6
1.4.4 更多內容 7
1.4.5 延伸閱讀 7
1.5 利用pip處理項目依賴項 8
1.5.1 準備工作 8
1.5.2 實現方式 8
1.5.3 工作方式 9
1.5.4 更多內容 10
1.5.5 延伸閱讀 10
1.6 針對開發、測試、預發布和產品環境,配置設定項 10
1.6.1 準備工作 10
1.6.2 實現方式 11
1.6.3 工作方式 12
1.6.4 延伸閱讀 12
1.7 在設定項中定義相對路徑 12
1.7.1 準備工作 13
1.7.2 實現方式 13
1.7.3 工作方式 13
1.7.4 延伸閱讀 14
1.8 處理敏感設定項 14
1.8.1 準備工作 14
1.8.2 實現方式 14
1.8.3 工作方式 15
1.8.4 更多內容 15
1.8.5 延伸閱讀 16
1.9 在項目中包含外部依賴項 16
1.9.1 準備工作 17
1.9.2 實現方式 17
1.9.3 工作方式 18
1.9.4 延伸閱讀 18
1.10 以動態方式設定STATIC_URL 19
1.10.1 準備工作 19
1.10.2 實現方式 19
1.10.3 工作方式 20
1.10.4 更多內容 20
1.10.5 延伸閱讀 22
1.11 將UTF-8設定為MySQL配置的默認編碼機制 22
1.11.1 準備工作 22
1.11.2 實現方式 22
1.11.3 工作方式 23
1.11.4 更多內容 23
1.11.5 延伸閱讀 23
1.12 創建Git忽略檔案 23
1.12.1 準備工作 23
1.12.2 實現方式 23
1.12.3 工作方式 25
1.12.4 延伸閱讀 25
1.13 刪除Python編譯檔案 25
1.13.1 準備工作 25
1.13.2 實現方式 26
1.13.3 工作方式 26
1.13.4 更多內容 26
1.13.5 延伸閱讀 26
1.14 遵循Python檔案中的導入順序 26
1.14.1 準備工作 26
1.14.2 實現方式 27
1.14.3 工作方式 27
1.14.4 更多內容 27
1.14.5 延伸閱讀 28
1.15 創建應用程式配置 28
1.15.1 準備工作 28
1.15.2 實現方式 28
1.15.3 工作方式 29
1.15.4 更多內容 30
1.15.5 延伸閱讀 30
1.16 定義可覆寫的應用程式設定項 30
1.16.1 準備工作 31
1.16.2 實現方式 31
1.16.3 工作方式 33
1.16.4 延伸閱讀 33
1.17 針對Django、Gunicorn、Nginx和PostgreSQL,與Docker容器協同工作 33
1.17.1 準備工作 34
1.17.2 實現方式 34
1.17.3 工作方式 38
1.17.4 更多內容 41
1.17.5 延伸閱讀 41
第2章 模型和資料庫結構 43
2.1 簡介 43
2.2 技術需求 43
2.3 使用模型混入 44
2.3.1 準備工作 44
2.3.2 實現方式 44
2.3.3 工作方式 45
2.3.4 更多內容 45
2.3.5 延伸閱讀 46
2.4 利用與URL相關的方法創建一個模型混入 46
2.4.1 準備工作 47
2.4.2 實現方式 47
2.4.3 工作方式 48
2.4.4 延伸閱讀 49
2.5 創建一個模型混入以處理日期的創建和修改 50
2.5.1 準備工作 50
2.5.2 實現方式 50
2.5.3 工作方式 51
2.5.4 延伸閱讀 51
2.6 創建一個模型混入以關注元標籤 51
2.6.1 準備工作 52
2.6.2 實現方式 52
2.6.3 工作方式 54
2.6.4 延伸閱讀 54
2.7 創建一個模型混入以處理Generic Relation 54
2.7.1 準備工作 55
2.7.2 實現方式 55
2.7.3 工作方式 58
2.7.4 延伸閱讀 59
2.8 處理多語言欄位 59
2.8.1 準備工作 59
2.8.2 實現方式 60
2.8.3 工作方式 64
2.8.4 延伸閱讀 65
2.9 與模型翻譯表協同工作 65
2.9.1 準備工作 66
2.9.2 實現方式 66
2.9.3 工作方式 69
2.9.4 延伸閱讀 70
2.10 避免環狀依賴項 71
2.10.1 準備工作 71
2.10.2 實現方式 71
2.10.3 延伸閱讀 73
2.11 添加資料庫約束 73
2.11.1 準備工作 73
2.11.2 實現方式 73
2.11.3 工作方式 74
2.11.4 更多內容 75
2.11.5 延伸閱讀 76
2.12 使用遷移 76
2.12.1 準備工作 77
2.12.2 實現方式 77
2.12.3 工作方式 78
2.12.4 更多內容 78
2.12.5 延伸閱讀 79
2.13 將外鍵修改為多對多欄位 79
2.13.1 準備工作 79
2.13.2 實現方式 81
2.13.3 工作方式 83
2.13.4 更多內容 84
2.13.5 延伸閱讀 84
第3章 表單和視圖 85
3.1 簡介 85
3.2 技術需求 85
3.3 利用CRUDL函式創建一個應用程式 86
3.3.1 準備工作 86
3.3.2 實現方式 89
3.3.3 工作方式 92
3.3.4 更多內容 92
3.3.5 延伸閱讀 93
3.4 保存模型實例的作者 93
3.4.1 準備工作 93
3.4.2 實現方式 93
3.4.3 工作方式 94
3.4.4 延伸閱讀 95
3.5 上傳圖像 95
3.5.1 準備工作 95
3.5.2 實現方式 95
3.5.3 工作方式 98
3.5.4 延伸閱讀 99
3.6 利用自定義模板創建一個表單布局 99
3.6.1 準備工作 99
3.6.2 實現方式 100
3.6.3 工作方式 103
3.6.4 延伸閱讀 105
3.7 利用django-crispy-forms創建一個表單布局 105
3.7.1 準備工作 105
3.7.2 實現方式 106
3.7.3 工作方式 108
3.7.4 更多內容 109
3.7.5 延伸閱讀 110
3.8 與表單集協同工作 110
3.8.1 準備工作 110
3.8.2 實現方式 110
3.8.3 工作方式 118
3.8.4 更多內容 120
3.8.5 延伸閱讀 120
3.9 過濾對象列表 121
3.9.1 準備工作 121
3.9.2 實現方式 122
3.9.3 工作方式 127
3.9.4 延伸閱讀 127
3.10 管理分頁列表 128
3.10.1 準備工作 128
3.10.2 實現方式 128
3.10.3 工作方式 131
3.10.4 延伸閱讀 132
3.11 合成基於類的視圖 132
3.11.1 準備工作 132
3.11.2 實現方式 132
3.11.3 工作方式 134
3.11.4 更多內容 135
3.11.5 延伸閱讀 135
3.12 提供Open Graph和Twitter Card數據 135
3.12.1 準備工作 135
3.12.2 實現方式 135
3.12.3 工作方式 138
3.12.4 延伸閱讀 138
3.13 提供schema.org辭彙表 139
3.13.1 準備工作 139
3.13.2 實現方式 139
3.13.3 工作方式 141
3.13.4 延伸閱讀 141
3.14 生成PDF文檔 142
3.14.1 準備工作 142
3.14.2 實現方式 142
3.14.3 工作方式 146
3.14.4 延伸閱讀 147
3.15 利用Haystack和Whoosh實現多語言搜尋 147
3.15.1 準備工作 147
3.15.2 實現方式 148
3.15.3 工作方式 153
3.15.4 延伸閱讀 154
3.16 利用Elasticsearch DSL實現多語言搜尋 154
3.16.1 準備工作 154
3.16.2 實現方式 154
3.16.3 工作方式 162
3.16.4 延伸閱讀 163
第4章 模板和JavaScript 165
4.1 簡介 165
4.2 技術需求 165
4.3 安排base.html模板 166
4.3.1 準備工作 166
4.3.2 實現方式 166
4.3.3 工作方式 168
4.3.4 延伸閱讀 169
4.4 使用Django Sekizai 170
4.4.1 準備工作 170
4.4.2 實現方式 171
4.4.3 工作方式 172
4.4.4 延伸閱讀 172
4.5 公開JavaScript中的設定項 172
4.5.1 準備工作 172
4.5.2 實現方式 173
4.5.3 工作方式 175
4.5.4 延伸閱讀 176
4.6 使用HTML 5數據屬性 176
4.6.1 準備工作 176
4.6.2 實現方式 179
4.6.3 工作方式 185
4.6.4 延伸閱讀 187
4.7 提供回響式圖像 187
4.7.1 準備工作 187
4.7.2 實現方式 187
4.7.3 工作方式 190
4.7.4 更多內容 192
4.7.5 延伸閱讀 192
4.8 實現連續的滾動 192
4.8.1 準備工作 192
4.8.2 實現方式 193
4.8.3 工作方式 197
4.8.4 更多內容 199
4.8.5 延伸閱讀 199
4.9 在模式對話框中打開對象的細節信息 199
4.9.1 準備工作 200
4.9.2 實現方式 200
4.9.3 工作方式 203
4.9.4 延伸閱讀 204
4.10 實現Like微件 204
4.10.1 準備工作 205
4.10.2 實現方式 206
4.10.3 工作方式 210
4.10.4 延伸閱讀 212
4.11 通過Ajax上傳圖像 212
4.11.1 準備工作 212
4.11.2 實現方式 212
4.11.3 工作方式 221
4.11.4 更多內容 223
4.11.5 延伸閱讀 223
第5章 自定義模板過濾器和標籤 225
5.1 簡介 225
5.2 技術需求 225
5.3 遵循自定義的模板過濾器和標籤規則 226
5.4 創建一個模板過濾器以顯示帖子發布的天數 227
5.4.1 準備工作 227
5.4.2 實現方式 227
5.4.3 工作方式 228
5.4.4 更多內容 229
5.4.5 延伸閱讀 229
5.5 創建一個模板過濾器以析取第一個媒體對象 229
5.5.1 準備工作 229
5.5.2 實現方式 230
5.5.3 工作方式 230
5.5.4 更多內容 231
5.5.5 延伸閱讀 231
5.6 創建一個模板過濾器以識別URL 232
5.6.1 準備工作 232
5.6.2 實現方式 232
5.6.3 工作方式 233
5.6.4 延伸閱讀 233
5.7 創建一個模板標籤以包含一個模板 233
5.7.1 準備工作 233
5.7.2 實現方式 234
5.7.3 工作方式 235
5.7.4 更多內容 236
5.7.5 延伸閱讀 237
5.8 創建一個模板標籤以載入模板中的QuerySet 237
5.8.1 準備工作 237
5.8.2 實現方式 239
5.8.3 工作方式 241
5.8.4 延伸閱讀 242
5.9 創建一個模板標籤以作為模板解析內容 242
5.9.1 準備工作 242
5.9.2 實現方式 243
5.9.3 工作方式 244
5.9.4 延伸閱讀 245
5.10 創建模板標籤以調整請求查詢參數 245
5.10.1 準備工作 245
5.10.2 實現方式 246
5.10.3 工作方式 248
5.10.4 延伸閱讀 250
第6章 模型管理 251
6.1 簡介 251
6.2 技術需求 251
6.3 自定義修改列表頁面上的列 251
6.3.1 準備工作 252
6.3.2 實現方式 254
6.3.3 工作方式 255
6.3.4 延伸閱讀 257
6.4 創建可排序的內聯 257
6.4.1 準備工作 257
6.4.2 實現方式 258
6.4.3 工作方式 259
6.4.4 延伸閱讀 260
6.5 創建管理動作 261
6.5.1 準備工作 261
6.5.2 實現方式 261
6.5.3 工作方式 264
6.5.4 延伸閱讀 265
6.6 開發修改列表過濾器 265
6.6.1 準備工作 265
6.6.2 實現方式 265
6.6.3 工作方式 267
6.6.4 延伸閱讀 268
6.7 修改第三方應用程式的應用程式標記 268
6.7.1 準備工作 268
6.7.2 實現方式 269
6.7.3 工作方式 269
6.7.4 延伸閱讀 270
6.8 創建一個自定義賬戶應用程式 270
6.8.1 準備工作 270
6.8.2 實現方式 270
6.8.3 工作方式 274
6.8.4 延伸閱讀 276
6.9 獲取用戶頭像 277
6.9.1 準備工作 277
6.9.2 實現方式 277
6.9.3 更多內容 284
6.9.4 延伸閱讀 284
6.10 將一幅地圖插入至修改表單中 285
6.10.1 準備工作 285
6.10.2 實現方式 289
6.10.3 工作方式 297
6.10.4 延伸閱讀 300
第7章 安全和性能 301
7.1 簡介 301
7.2 技術需求 301
7.3 表單的跨站點請求偽造安全 302
7.3.1 準備工作 302
7.3.2 實現方式 302
7.3.3 工作方式 304
7.3.4 更多內容 304
7.3.5 延伸閱讀 305
7.4 基於內容安全政策的請求安全 306
7.4.1 準備工作 306
7.4.2 實現方式 306
7.4.3 工作方式 307
7.4.4 延伸閱讀 309
7.5 使用django-admin-honeypot 309
7.5.1 準備工作 310
7.5.2 實現方式 310
7.5.3 工作方式 310
7.5.4 更多內容 311
7.5.5 延伸閱讀 313
7.6 實現密碼驗證 313
7.6.1 準備工作 313
7.6.2 實現方式 313
7.6.3 工作方式 316
7.6.4 更多內容 317
7.6.5 延伸閱讀 317
7.7 下載授權檔案 317
7.7.1 準備工作 317
7.7.2 實現方式 317
7.7.3 工作方式 320
7.7.4 延伸閱讀 320
7.8 向圖像中添加動態水印 321
7.8.1 準備工作 321
7.8.2 實現方式 321
7.8.3 工作方式 324
7.8.4 延伸閱讀 325
7.9 基於Auth0的身份驗證 325
7.9.1 準備工作 325
7.9.2 實現方式 326
7.9.3 工作方式 330
7.9.4 延伸閱讀 332
7.10 快取方法的返回值 332
7.10.1 準備工作 332
7.10.2 實現方式 332
7.10.3 工作方式 333
7.10.4 更多內容 334
7.10.5 延伸閱讀 335
7.11 使用Memcached快取Django視圖 335
7.11.1 準備工作 335
7.11.2 實現方式 336
7.11.3 工作方式 337
7.11.4 延伸閱讀 337
7.12 使用Redis快取Django視圖 337
7.12.1 準備工作 338
7.12.2 實現方式 338
7.12.3 工作方式 339
7.12.4 更多內容 340
7.12.5 延伸閱讀 340
第8章 層次結構 341
8.1 簡介 341
8.2 技術需求 343
8.3 利用django-mptt創建層次分類 343
8.3.1 準備工作 343
8.3.2 實現方式 343
8.3.3 工作方式 345
8.3.4 延伸閱讀 346
8.4 利用django-mptt-admin創建分類管理界面 346
8.4.1 準備工作 347
8.4.2 實現方式 347
8.4.3 工作方式 348
8.4.4 延伸閱讀 349
8.5 利用django-mptt在模板中渲染分類 350
8.5.1 準備工作 351
8.5.2 實現方式 351
8.5.3 工作方式 352
8.5.4 更多內容 353
8.5.5 延伸閱讀 353
8.6 利用django-mptt和單選欄位在表單中選擇分類 353
8.6.1 準備工作 353
8.6.2 實現方式 354
8.6.3 工作方式 355
8.6.4 延伸閱讀 356
8.7 利用django-mptt在表單中通過複選框列表選擇多個分類 356
8.7.1 準備工作 357
8.7.2 實現方式 357
8.7.3 工作方式 362
8.7.4 延伸閱讀 363
8.8 利用django-treebeard創建層次分類 363
8.8.1 準備工作 364
8.8.2 實現方式 364
8.8.3 工作方式 365
8.8.4 更多內容 366
8.8.5 延伸閱讀 367
8.9 利用django-treebeard創建分類管理界面 367
8.9.1 準備工作 367
8.9.2 實現方式 367
8.9.3 工作方式 368
8.9.4 延伸閱讀 370
第9章 導入和導出數據 371
9.1 簡介 371
9.2 技術需求 371
9.3 從本地CSV檔案中導入數據 371
9.3.1 準備工作 372
9.3.2 實現方式 374
9.3.3 工作方式 376
9.3.4 延伸閱讀 377
9.4 從本地Excel檔案中導入數據 378
9.4.1 準備工作 378
9.4.2 實現方式 378
9.4.3 工作方式 380
9.4.4 延伸閱讀 381
9.5 從外部JSON檔案中導入數據 381
9.5.1 準備工作 382
9.5.2 實現方式 384
9.5.3 工作方式 387
9.5.4 延伸閱讀 388
9.6 從外部XML檔案中導入數據 388
9.6.1 準備工作 388
9.6.2 實現方式 389
9.6.3 工作方式 392
9.6.4 更多內容 393
9.6.5 延伸閱讀 393
9.7 針對搜尋引擎準備分頁網站地圖 394
9.7.1 準備工作 394
9.7.2 實現方式 396
9.7.3 工作方式 397
9.7.4 更多內容 398
9.7.5 延伸閱讀 398
9.8 創建可過濾的RSS訂閱 398
9.8.1 準備工作 398
9.8.2 實現方式 401
9.8.3 工作方式 404
9.8.4 延伸閱讀 404
9.9 使用Django REST框架創建一個API 404
9.9.1 準備工作 404
9.9.2 實現方式 405
9.9.3 工作方式 406
9.9.4 延伸閱讀 410
第10章 其他內容 411
10.1 簡介 411
10.2 技術需求 411
10.3 使用Django shell 412
10.3.1 準備工作 412
10.3.2 實現方式 412
10.3.3 工作方式 416
10.3.4 延伸閱讀 416
10.4 使用資料庫查詢表達式 416
10.4.1 準備工作 416
10.4.2 實現方式 418
10.4.3 工作方式 421
10.4.4 延伸閱讀 423
10.5 slugify()函式的猴子補丁以獲得更好的國際支持 423
10.5.1 準備工作 423
10.5.2 實現方式 424
10.5.3 更多內容 424
10.5.4 延伸閱讀 425
10.6 切換調試工具列 425
10.6.1 準備工作 425
10.6.2 實現方式 426
10.6.3 工作方式 428
10.6.4 延伸閱讀 429
10.7 使用ThreadLocalMiddleware 429
10.7.1 準備工作 430
10.7.2 實現方式 430
10.7.3 工作方式 431
10.7.4 延伸閱讀 432
10.8 使用信號通知管理員有關新的條目 432
10.8.1 準備工作 432
10.8.2 實現方式 433
10.8.3 工作方式 434
10.8.4 延伸閱讀 435
10.9 檢查缺失設定項 435
10.9.1 準備工作 435
10.9.2 實現方式 435
10.9.3 工作方式 437
10.9.4 延伸閱讀 438
第11章 測試 439
11.1 簡介 439
11.2 需求條件 439
11.3 利用Mock測試視圖 440
11.3.1 準備工作 440
11.3.2 實現方式 440
11.3.3 工作方式 442
11.3.4 更多內容 443
11.3.5 延伸閱讀 443
11.4 利用Selenium測試用戶界面 443
11.4.1 準備工作 444
11.4.2 實現方式 444
11.4.3 工作方式 448
11.4.4 延伸閱讀 449
11.5 利用Django REST框架測試API 449
11.5.1 準備工作 449
11.5.2 實現方式 449
11.5.3 工作方式 454
11.5.4 延伸閱讀 454
11.6 確保測試覆蓋率 455
11.6.1 準備工作 455
11.6.2 實現方式 455
11.6.3 工作方式 457
11.6.4 延伸閱讀 457
第12章 部署 459
12.1 簡介 459
12.2 技術需求 460
12.3 發布可復用的Django應用程式 460
12.3.1 準備工作 460
12.3.2 實現方式 460
12.3.3 工作方式 464
12.3.4 延伸閱讀 464
12.4 針對預發布環境利用mod_wsgi在Apache上部署 464
12.4.1 準備工作 464
12.4.2 實現方式 465
12.4.3 工作方式 473
12.4.4 延伸閱讀 475
12.5 針對產品環境利用mod_wsgi在Apache上部署 475
12.5.1 準備工作 475
12.5.2 實現方式 476
12.5.3 工作方式 480
12.5.4 延伸閱讀 481
12.6 針對預發布環境在Nginx和Gunicorn上部署 481
12.6.1 準備工作 481
12.6.2 實現方式 482
12.6.3 工作方式 490
12.6.4 延伸閱讀 492
12.7 針對產品環境在Nginx和Gunicorn上部署 492
12.7.1 準備工作 492
12.7.2 實現方式 493
12.7.3 工作方式 496
12.7.4 延伸閱讀 497
第13章 維護 499
13.1 簡介 499
13.2 技術需求 499
13.3 創建和恢復MySQL資料庫備份 499
13.3.1 準備工作 500
13.3.2 實現方式 500
13.3.3 工作方式 503
13.3.4 延伸閱讀 504
13.4 創建和恢復PostgreSQL資料庫備份 504
13.4.1 準備工作 504
13.4.2 實現方式 504
13.4.3 工作方式 507
13.4.4 延伸閱讀 509
13.5 設定常規作業的定時任務 509
13.5.1 準備工作 509
13.5.2 實現方式 509
13.5.3 工作方式 511
13.5.4 更多內容 512
13.5.5 延伸閱讀 512
13.6 日誌事件 512
13.6.1 準備工作 513
13.6.2 實現方式 513
13.6.3 工作方式 516
13.6.4 延伸閱讀 517
13.7 通過電子郵件獲取詳細的錯誤報告 517
13.7.1 準備工作 517
13.7.2 實現方式 518
13.7.3 更多內容 519
13.7.4 延伸閱讀 520