Django4 實例精解 Django 4 By Example : Build powerful and reliable Python web applications from scratch, 4/e
[美]安東尼奧·米勒 著 李偉 譯
- 出版商: 清華大學
- 出版日期: 2023-11-01
- 定價: $1,014
- 售價: 8.5 折 $862
- 語言: 簡體中文
- 頁數: 683
- 裝訂: 平裝
- ISBN: 7302647909
- ISBN-13: 9787302647904
-
相關分類:
Django
- 此書翻譯自: Django 4 By Example : Build powerful and reliable Python web applications from scratch, 4/e (Paperback)
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$550$550 -
$447Django 3 項目實例精解
-
$534$507 -
$580$435 -
$620$465 -
$890$587 -
$768$730 -
$620$527 -
$880$748 -
$880$695 -
$359擁抱開源, 2/e
-
$780$608 -
$653Python asyncio 並發編程
-
$594$564 -
$654$621 -
$714$678 -
$354$336 -
$600$468 -
$254Python 網絡爬蟲技術, 2/e (微課版)
-
$505$475 -
$650$507 -
$680$530 -
$774$735 -
$352AI Agent:AI的下一個風口
-
$580$435
相關主題
商品描述
《Django4實例精解》詳細闡述了與Django 4相關的基本解決方案,主要包括構建一個博客應用程序、利用高級特性增強博客應用程序、擴展博客應用程序、構建社交網站、實現社交身份驗證、共享網站上的內容、跟蹤用戶動作、構建在線商店、管理支付和訂單、擴展商店、向商店中添加國際化功能、構建在線學習平臺、創建內容管理系統、渲染和緩存內容、構建API、構建聊天服務器、生產環境等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校電腦及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。
目錄大綱
目 錄
第1章 構建一個博客應用程序 1
1.1 安裝Python 2
1.2 創建Python虛擬環境 2
1.3 安裝Django 3
1.3.1 利用pip安裝Django 4
1.3.2 Django 4中的新特性 4
1.4 Django概述 5
1.5 主框架組件 5
1.6 Django架構 5
1.7 創建第一個項目 6
1.7.1 應用初始數據庫遷移 7
1.7.2 運行開發服務器 8
1.7.3 項目設置項 10
1.7.4 項目和應用程序 11
1.7.5 創建一個應用程序 12
1.8 創建博客數據模型 12
1.8.1 創建Post模型 13
1.8.2 添加日期時間字段 14
1.8.3 定義默認排序順序 15
1.8.4 添加一個數據庫索引 16
1.8.5 激活應用程序 17
1.8.6 添加一個status字段 17
1.8.7 添加多對一關系 20
1.8.8 創建並應用遷移 21
1.9 創建模型的管理網站 24
1.9.1 創建一個超級用戶 24
1.9.2 Django管理網站 24
1.9.3 向管理網站中添加模型 25
1.9.4 定製模型的顯示方式 27
1.10 與QuerySet和管理器協同工作 29
1.10.1 創建對象 30
1.10.2 更新對象 31
1.10.3 檢索對象 31
1.10.4 刪除對象 32
1.10.5 QuerySet何時取值 33
1.10.6 創建模型管理器 33
1.11 構建列表和詳細視圖 35
1.11.1 創建列表和詳細視圖 35
1.11.2 使用get_object_or_404快捷方式 36
1.11.3 添加視圖的URL模式 37
1.12 創建視圖的模板 38
1.12.1 創建基礎模板 39
1.12.2 創建帖子列表模板 40
1.12.3 訪問應用程序 41
1.12.4 創建帖子詳細模板 41
1.13 請求/響應循環 42
1.14 附加資源 43
1.15 本章小結 44
第2章 利用高級特性增強博客應用程序 45
2.1 使用模型的標準URL 45
2.2 創建帖子的SEO友好的URL 48
2.3 調整URL模式 49
2.4 調整視圖 50
2.5 調整帖子的標準URL 50
2.6 添加分頁 51
2.6.1 向帖子列表視圖中添加分頁 52
2.6.2 創建一個分頁模板 52
2.6.3 處理分頁錯誤 55
2.7 構建基於類的視圖 58
2.7.1 為何採用基於類的視圖 59
2.7.2 使用基於類的視圖列出帖子 59
2.8 基於電子郵件的推薦帖子 61
2.8.1 利用Django創建表單 61
2.8.2 處理視圖中的表單 63
2.8.3 利用Django發送電子郵件 64
2.8.4 在視圖中發送電子郵件 68
2.8.5 在模板中渲染表單 70
2.9 創建一個評論系統 74
2.9.1 創建一個評論模型 74
2.9.2 向管理網站中添加評論 76
2.9.3 從模型中創建表單 77
2.9.4 在視圖中處理ModelForms 78
2.9.5 創建評論表單的模板 80
2.9.6 向帖子詳細視圖中添加評論 82
2.9.7 向帖子詳細模板中添加評論 83
2.10 附加資源 89
2.11 本章小結 90
第3章 擴展博客應用程序 91
3.1 添加標簽功能 91
3.2 根據相似性檢索帖子 100
3.3 創建自定義模板標簽和過濾器 105
3.3.1 實現自定義模板標簽 105
3.3.2 創建一個簡單的模板標簽 106
3.3.3 創建一個包含模板標簽 108
3.3.4 創建返回QuerySet的模板標簽 109
3.3.5 實現自定義模板過濾器 112
3.3.6 創建模板過濾器以支持Markdown語法 112
3.4 向網站中添加網站地圖 117
3.5 創建博客帖子的訂閱源 121
3.6 向博客中添加全文本搜索 128
3.6.1 安裝PostgreSQL 129
3.6.2 創建PostgreSQL數據庫 129
3.6.3 轉儲現有的數據 130
3.6.4 切換項目中的數據庫 131
3.6.5 將數據加載至新數據庫中 132
3.6.6 簡單的搜索查詢 133
3.6.7 針對多個字段搜索 134
3.6.8 構建一個搜索視圖 134
3.6.9 詞乾和排名結果 138
3.6.10 不同語言中的詞乾提取和移除停用詞 139
3.6.11 加權查詢 140
3.6.12 使用三元組相似性進行搜索 140
3.7 附加資源 142
3.8 本章小結 143
第4章 構建社交網站 145
4.1 創建社交網站項目 145
4.2 使用Django身份驗證框架 147
4.2.1 創建一個登錄視圖 148
4.2.2 使用Django身份驗證視圖 154
4.2.3 登錄和註銷視圖 155
4.2.4 修改密碼視圖 160
4.2.5 重置密碼視圖 163
4.3 用戶註冊和用戶個人信息 170
4.3.1 用戶註冊 170
4.3.2 擴展用戶模型 176
4.3.3 安裝Pillow並處理媒體文件 177
4.3.4 創建資料模型的遷移 178
4.2.5 使用消息框架 184
4.4 構建自定義身份驗證後端 187
4.5 附加資源 191
4.6 本章小結 192
第5章 實現社交身份驗證 193
5.1 向網站中添加社交身份驗證 193
5.1.1 通過HTTPS運行開發服務器 196
5.1.2 利用Facebook進行身份驗證 199
5.1.3 利用Twitter進行身份驗證 206
5.1.4 使用Google進行身份驗證 215
5.1.5 為註冊社交認證的用戶創建資料文件 223
5.2 附加資源 225
5.3 本章小結 226
第6章 共享網站上的內容 227
6.1 創建一個圖像收藏網站 227
6.1.1 構建圖像模型 228
6.1.2 創建多對多關系 230
6.1.3 在管理網站註冊圖像模型 231
6.2 從其他網站上發布內容 231
6.2.1 清除表單字段 232
6.2.2 安裝Requests庫 233
6.2.3 覆寫ModelForm的ave()方法 233
6.2.4 利用JavaScript構建書簽工具 238
6.3 創建圖像的詳細視圖 250
6.4 利用easy-thumbnails創建圖像的縮略圖 253
6.5 利用JavaScript添加異步動作 255
6.5.1 在DOM上加載JavaScript 257
6.5.2 JavaScript中HTTP請求的跨站點請求偽造 258
6.5.3 利用JAvaScript實現HTTP請求 259
6.6 向圖像列表中添加無限滾動分頁機制 265
6.7 附加資源 271
6.8 本章小結 272
第7章 跟蹤用戶動作 273
7.1 構建關註系統 273
7.1.1 利用中間模型創建多對多關系 274
7.1.2 創建用戶資料的列表和詳細視圖 277
7.1.3 利用JavaScript添加關註/取消關註動作 282
7.2 構建通用的活動流應用程序 284
7.2.1 使用contenttypes框架 285
7.2.2 向模型中添加通用關系 286
7.2.3 避免活動流中的重復動作 289
7.2.4 向活動流中添加用戶動作 291
7.2.5 顯示活動流 293
7.2.6 優化涉及關聯對象的QuerySet 294
7.2.7 創建動作模板 296
7.3 針對反規範化計數使用信號 298
7.3.1 與信號協同工作 298
7.3.2 應用程序配置類 301
7.4 使用Django Debug Toolbar 303
7.4.1 安裝Django Debug Toolbar 303
7.4.2 Django Debug Toolbar 305
7.4.3 Django Debug Toolbar命令 308
7.5 利用Redis計數圖像視圖 309
7.5.1 安裝Docker 310
7.5.2 安裝Redis 310
7.5.3 通過Python使用Redis 312
7.5.4 將圖像視圖存儲於Redis中 313
7.5.5 將排名存儲於Redis中 315
7.5.6 Redis適用場景 317
7.6 附加資源 318
7.7 本章小結 319
第8章 構建在線商店 321
8.1 創建在線商店項目 321
8.1.1 創建商品目錄模型 322
8.1.2 在管理網站上註冊目錄模型 326
8.1.3 構建目錄視圖 328
8.1.4 創建目錄模板 330
8.2 構建購物車 335
8.2.1 使用Django會話 335
8.2.2 會話設置 336
8.2.3 會話過期 337
8.2.4 將購物車存儲至會話中 337
8.2.5 創建購物車視圖 341
8.2.6 針對當前購物車創建上下文處理器 349
8.3 註冊客戶訂單 352
8.3.1 創建訂單模型 352
8.3.2 在管理網站中包含訂單模型 354
8.3.3 創建自定義表單 355
8.4 異步任務 360
8.4.1 與異步任務協同工作 361
8.4.2 worker、消息隊列和消息代理 361
8.5 附加資源 371
8.6 本章小結 371
第9章 管理支付和訂單 373
9.1 集成支付網關 373
9.1.1 創建Stripe賬戶 374
9.1.2 安裝Stripe Python庫 376
9.1.3 向項目中添加Stripe 377
9.1.4 構建支付處理過程 378
9.1.5 測試結算過程 387
9.1.6 使用webhook接收支付通知 394
9.1.7 在訂單中引用Stripe支付 401
9.2 將訂單導出為CSV文件 405
9.3 利用自定義視圖擴展管理網站 408
9.4 以動態方式生成PDF發票 413
9.4.1 安裝WeasyPrint 413
9.4.2 創建PDF模板 413
9.4.3 渲染PDF文件 414
9.4.4 通過電子郵件發送PDF文件 418
9.5 附加資源 421
9.6 本章小結 422
第10章 擴展商店 423
10.1 創建優惠券系統 423
10.1.1 構建優惠券系統 424
10.1.2 將優惠券應用於購物車上 427
10.1.3 將優惠券應用於訂單上 434
10.1.4 針對Stripe Checkout創建優惠券 439
10.1.5 將優惠券添加至訂單和PDF發票中 441
10.2 構建推薦引擎 444
10.3 附加資源 452
10.4 本章小結 453
第11章 向商店中添加國際化功能 455
11.1 基於Django的國際化 455
11.1.1 國際化和本地化設置 456
11.1.2 國際化管理命令 457
11.1.3 安裝gettext工具集 457
11.1.4 如何向Django項目中添加翻譯 457
11.1.5 Django如何確定當前語言 457
11.2 準備項目以實現國際化 458
11.3 翻譯Python代碼 459
11.3.1 標準翻譯 460
11.3.2 延遲翻譯 460
11.3.3 變量翻譯 460
11.3.4 翻譯中的復數形式 460
11.3.5 翻譯自己的代碼 461
11.4 翻譯模板 465
11.4.1 {% trans %}模板標簽 465
11.4.2 {% blocktrans %}模板標簽 465
11.4.3 翻譯shop模板 466
11.5 使用Rosetta翻譯界面 470
11.6 模糊翻譯 472
11.7 國際化的URL模式 473
11.7.1 向URL模式中添加語言前綴 473
11.7.2 翻譯URL模式 474
11.8 允許用戶切換語言 478
11.9 利用django-parler翻譯模型 480
11.9.1 安裝django-parler 480
11.9.2 翻譯模型字段 481
11.9.3 將翻譯集成至管理網站中 483
11.9.4 創建模型翻譯的遷移 484
11.9.5 結合ORM使用翻譯 486
11.9.6 調整翻譯視圖 487
11.10 本地化格式 489
11.11 使用django-localflavor驗證表單字段 490
11.12 附加資源 491
11.13 本章小結 492
第12章 構建在線學習平臺 493
12.1 設置在線學習項目 493
12.2 服務於媒體文件 494
12.3 構建course模塊 495
12.3.1 在管理網站中註冊模型 498
12.3.2 使用fixture提供模型的初始數據 498
12.4 針對多態內容創建模型 501
12.4.1 使用模型繼承 502
12.4.2 創建Content模型 504
12.4.3 創建自定義模型字段 506
12.4.4 向模塊和內容對象中添加順序 508
12.5 添加身份驗證視圖 512
12.5.1 添加身份驗證系統 512
12.5.2 創建身份驗證模板 513
12.6 附加資源 516
12.7 本章小結 517
第13章 創建內容管理系統 519
13.1 創建CMS 519
13.1.1 創建基於類的視圖 519
13.1.2 針對基於類的視圖使用混入 520
13.1.3 與分組和權限協同工作 522
13.2 管理課程模塊及其內容 530
13.2.1 對課程模塊使用表單集 530
13.2.2 向課程模塊添加內容 534
13.2.3 管理模塊及其內容 539
13.2.4 重新排序模塊及其內容 544
13.3 附加資源 552
13.4 本章小結 553
第14章 渲染和緩存內容 555
14.1 顯示課程 555
14.2 添加學生註冊信息 561
14.2.1 創建學生的註冊視圖 561
14.2.2 註冊課程 564
14.3 訪問課程內容 567
14.4 使用緩存框架 573
14.4.1 有效的緩存後端 573
14.4.2 安裝Memcached 574
14.4.3 安裝Memcached Docker鏡像 574
14.4.4 安裝Memcached Python綁定 574
14.4.5 Django緩存設置項 575
14.4.6 將Memcached添加至項目中 575
14.4.7 緩存級別 576
14.4.8 使用低級別的緩存API 576
14.4.9 利用Django Debug Toolbar檢查緩存請求 578
14.4.10 基於動態數據的緩存 581
14.4.11 緩存模板片段 582
14.4.12 緩存視圖 583
14.4.13 使用逐站點緩存 583
14.4.14 使用Redis緩存後端 585
14.4.15 利用Django Redisboard監視Redis 585
14.5 附加資源 587
14.6 本章小結 588
第15章 構建API 589
15.1 構建RESTful API 589
15.1.1 安裝Django REST框架 590
15.1.2 定義序列化器 591
15.1.3 理解解析器和渲染器 592
15.1.4 構建列表和詳細視圖 593
15.1.5 使用API 594
15.1.6 創建嵌套的序列化器 596
15.1.7 構建自定義API視圖 598
15.1.8 處理身份驗證 599
15.1.9 向視圖中添加權限 600
15.1.10 構建ViewSet和路由器 601
15.1.11 向ViewSet添加附加動作 603
15.1.12 創建自定義權限 604
15.1.13 序列化課程內容 604
15.1.14 使用RESTful API 607
15.2 附加資源 609
15.3 本章小結 610
第16章 構建聊天服務器 611
16.1 創建聊天應用程序 611
16.2 基於Channels的實時Django 614
16.2.1 基於ASGI的異步應用程序 615
16.2.2 基於Channels的請求/響應循環 615
16.3 安裝Channels 617
16.4 編寫使用者 619
16.5 路由機制 620
16.6 實現WebSocket客戶端 621
16.7 啟用通道層 628
16.7.1 通道和分組 628
16.7.2 利用Redis設置通道層 628
16.7.3 更新使用者並廣播消息 629
16.7.4 向消息中添加上下文 634
16.8 將使用者調整為全異步 637
16.9 將聊天室應用程序與現有視圖集成 639
16.10 附加資源 640
16.11 本章小結 640
第17章 生產環境 641
17.1 創建生產環境 641
17.1.1 針對多個環境管理設置項 642
17.1.2 本地環境設置項 643
17.1.3 運行本地環境 643
17.1.4 生產環境設置項 644
17.2 使用Docker Compose 645
17.2.1 安裝Docker Compose 645
17.2.2 創建Dockerfile 646
17.2.3 添加Python需求條件 647
17.2.4 創建Docker Compose 648
17.2.5 配置PostgreSQL服務 651
17.2.6 應用數據庫遷移並創建超級用戶 654
17.2.7 配置Redis服務 654
17.3 利用WSGI和NGINX服務於Django 656
17.3.1 使用uWSGI 656
17.3.2 配置uWSGI 657
17.3.3 使用NGINX 658
17.3.4 配置NGINX 659
17.3.5 使用主機名 661
17.3.6 服務於靜態和媒體數據資源 662
17.4 基於SSL/TLS的站點的安全 665
17.4.1 針對生產環境檢查項目 665
17.4.2 針對SSL/TLS配置Django項目 666
17.4.3 生成SSL/TLS證書 667
17.4.4 配置NGINX以使用SSL/TLS 667
17.4.5 將HTTP流量重定向至HTTPS 670
17.5 針對Django Channels使用Daphne 671
17.5.1 針對WebSocket使用安全的連接 673
17.5.2 在NGINX配置中包含Daphne 673
17.6 創建自定義中間件 676
17.6.1 創建子域中間件 677
17.6.2 利用NGINX服務於多個子域 678
17.7 實現自定義管理命令 679
17.8 附加資源 681
17.9 本章小結 683