Django Web 開發實例精解 Django 3 Web Development Cookbook, 4/e
[美]愛達斯·班德拉蒂斯 等著 張華臻 譯
- 出版商: 清華大學
- 出版日期: 2023-04-01
- 售價: $954
- 貴賓價: 9.5 折 $906
- 語言: 簡體中文
- ISBN: 730263131X
- ISBN-13: 9787302631316
-
相關分類:
Django
- 此書翻譯自: Django 3 Web Development Cookbook, 4/e (Paperback)
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
$580$452 -
$550$435 -
$2,150$2,043 -
$580$493 -
$4,720$4,626 -
$305Android Studio 程序設計教程
-
$600$468 -
$602深入理解 Django:框架內幕與實現原理
-
$699$552 -
$254Android Studio 移動應用開發從入門到實戰, 2/e (微課版)
-
$550$495 -
$768$730 -
$600$474 -
$607Python Web 深度學習
-
$780$616 -
$650$513 -
$704Vue.js+Django高性能全棧論道
-
$660$515 -
$780$608 -
$630$498 -
$556Django + Vue.js 商城項目實戰
-
$658利用 FastAPI 構建 Python 微服務
-
$600$570 -
$419$398 -
$768$730
相關主題
商品描述
《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