第1章 Django建站基礎 1
1.1 網站的定義及組成 1
1.2 網站的分類 2
1.3 網站運行原理及開發流程 4
1.3.1 常用術語 4
1.3.2 網站的運行原理 4
1.3.3 網站的開發流程 5
1.3.4 任務劃分 5
1.4 走進Django 6
1.5 安裝Django 6
1.6 創建項目 7
1.7 PyCharm創建項目 9
1.8 開啟Django Hello World 11
1.8.1 Django的操作指令 11
1.8.2 開啟Hello World之旅 13
1.9 調試Django項目 15
1.9.1 PyCharm斷點調試 15
1.9.2 調試異常 17
1.10 HTML、CSS和JavaScript 19
1.10.1 HTML 19
1.10.2 CSS 21
1.10.3 JavaScript 24
1.11 本章小結 26
第2章 Django配置信息 29
2.1 基本配置信息 29
2.2 資源文件配置 31
2.2.1 資源路由——STATIC_URL 31
2.2.2 資源集合——STATICFILES_DIRS 32
2.2.3 資源部署——STATIC_ROOT 33
2.2.4 媒體資源——MEDIA 34
2.3 模板配置 35
2.4 數據庫配置 37
2.4.1 mysqlclient連接MySQL 37
2.4.2 pymysql連接MySQL 39
2.4.3 多個數據庫的連接方式 40
2.4.4 使用配置文件動態連接數據庫 41
2.4.5 通過SSH隧道遠程連接MySQL 43
2.5 中間件 45
2.6 本章小結 46
第3章 初探路由 48
3.1 路由定義規則 48
3.1.1 Django 2以上版本路由定義 48
3.1.2 Django 1.X路由定義 51
3.1.3 路由變量的設置 52
3.1.4 正則表達式的路由定義 55
3.2 命名空間與路由命名 56
3.2.1 命名空間namespace 56
3.2.2 路由命名name 57
3.3 路由的使用方式 59
3.3.1 在模板中使用路由 59
3.3.2 反向解析reverse與resolve 62
3.3.3 路由重定向 65
3.4 本章小結 67
第4章 探究FBV視圖 69
4.1 設置響應方式 69
4.1.1 返回響應內容 69
4.1.2 設置重定向 73
4.1.3 異常響應 75
4.1.4 文件下載功能 77
4.2 HTTP請求對像 81
4.2.1 獲取請求信息 82
4.2.2 文件上傳功能 85
4.2.3 Cookie實現反爬蟲 90
4.2.4 請求頭實現反爬蟲 97
4.3 本章小結 100
第5章 探究CBV視圖 102
5.1 數據顯示視圖 102
5.1.1 重定向視圖RedirectView 102
5.1.2 基礎視圖TemplateView 105
5.1.3 列表視圖ListView 107
5.1.4 詳細視圖DetailView 112
5.2 數據操作視圖 115
5.2.1 表單視圖FormView 115
5.2.2 新增視圖CreateView 118
5.2.3 修改視圖UpdateView 120
5.2.4 刪除視圖DeleteView 122
5.3 日期篩選視圖 124
5.3.1 月份視圖MonthArchiveView 126
5.3.2 周期視圖WeekArchiveView 131
5.4 本章小結 133
第6章 深入模板 135
6.1 Django模板引擎 135
6.1.1 模板上下文 135
6.1.2 自定義標簽 137
6.1.3 模板繼承 141
6.1.4 自定義過濾器 143
6.2 Jinja2模板引擎 147
6.2.1 安裝與配置 148
6.2.2 模板語法 151
6.2.3 自定義過濾器 153
6.3 本章小結 154
第7章 模型與數據庫 156
7.1 模型定義與數據遷移 156
7.1.1 定義模型 157
7.1.2 開發個人的ORM框架 160
7.1.3 數據遷移 163
7.1.4 數據導入與導出 167
7.2 數據表關繫 168
7.3 數據表操作 172
7.3.1 數據新增 173
7.3.2 數據修改 175
7.3.3 數據刪除 176
7.3.4 數據查詢 177
7.3.5 多表查詢 181
7.3.6 執行SQL語句 185
7.3.7 數據庫事務 186
7.4 多數據庫的連接與使用 189
7.4.1 多數據庫的連接 189
7.4.2 多數據庫的使用 191
7.5 動態創建模型與數據表 194
7.6 MySQL分表功能 197
7.7 本章小結 201
第8章 表單與模型 203
8.1 初識表單 203
8.2 源碼分析Form 207
8.3 源碼分析ModelForm 213
8.4 視圖裡使用Form 217
8.5 視圖裡使用ModelForm 219
8.6 同一網頁多個表單 222
8.7 一個表單多個按鈕 225
8.8 表單的批量處理 227
8.9 多文件批量上存 231
8.10 本章小結 236
第9章 Admin後臺繫統 238
9.1 走進Admin 238
9.2 源碼分析ModelAdmin 242
9.3 Admin首頁設置 247
9.4 Admin的二次開發 249
9.4.1 函數get_readonly_fields() 250
9.4.2 設置字段樣式 251
9.4.3 函數get_queryset() 253
9.4.4 函數formfield_for_foreignkey() 253
9.4.5 函數formfield_for_choice_field() 254
9.4.6 函數save_model() 255
9.4.7 數據批量操作 257
9.4.8 自定義Admin模板 258
9.4.9 自定義Admin後臺繫統 260
9.5 本章小結 266
第10章 Auth認證繫統 268
10.1 內置User實現用戶管理 268
10.2 發送郵件實現密碼找回 276
10.3 模型User的擴展與使用 283
10.4 權限的設置與使用 290
10.5 自定義用戶權限 292
10.6 設置網頁的訪問權限 294
10.7 用戶組的設置與使用 300
10.8 本章小結 302
第11章 常用的Web應用程序 305
11.1 會話控制 305
11.1.1 會話的配置與操作 305
11.1.2 使用會話實現商品搶購 309
11.2 緩存機制 315
11.2.1 緩存的類型與配置 316
11.2.2 緩存的使用 318
11.3 CSRF防護 322
11.4 消息框架 324
11.4.1 源碼分析消息框架 324
11.4.2 消息框架的使用 326
11.5 分頁功能 330
11.5.1 源碼分析分頁功能 330
11.5.2 分頁功能的使用 333
11.6 國際化和本地化 337
11.6.1 環境搭建與配置 337
11.6.2 設置國際化 338
11.6.3 設置本地化 340
11.7 測試 341
11.7.1 定義測試類 342
11.7.2 運行測試用例 348
11.8 自定義中間件 349
11.8.1 中間件的定義過程 349
11.8.2 中間件實現Cookie反爬蟲 352
11.9 異步編程 355
11.9.1 使用多線程 355
11.9.2 啟用ASGI服務 358
11.9.3 異步視圖 359
11.9.4 異步與同步的轉換 362
11.10 信號機制 363
11.10.1 內置信號 363
11.10.2 自定義信號 367
11.10.3 訂單創建與取消 369
11.11 本章小結 373
第12章 第三方功能應用 377
12.1 Django Rest Framework框架 377
12.1.1 DRF的安裝與配置 377
12.1.2 序列化類Serializer 379
12.1.3 模型序列化類ModelSerializer 383
12.1.4 序列化的嵌套使用 386
12.2 驗證碼生成與使用 389
12.2.1 Django Simple Captcha的安裝與配置 389
12.2.2 使用驗證碼實現用戶登錄 392
12.3 站內搜索引擎 396
12.3.1 Django Haystack的安裝與配置 396
12.3.2 使用搜索引擎實現產品搜索 399
12.4 第三方網站實現用戶注冊 404
12.4.1 Social-Auth-App-Django的安裝與配置 405
12.4.2 微博賬號實現用戶注冊 409
12.5 異步任務和定時任務 411
12.5.1 Celery的安裝與配置 411
12.5.2 異步任務 413
12.5.3 定時任務 416
12.6 即時通信——在線聊天 417
12.6.1 Channels的安裝與配置 418
12.6.2 Web在線聊天功能 421
12.7 本章小結 425
第13章 信息反饋ping臺的設計與實現 427
13.1 項目設計與配置 427
13.1.1 項目架構設計 428
13.1.2 MySQL搭建與配置 429
13.1.3 功能配置 431
13.1.4 數據庫架構設計 433
13.2 程序功能開發 434
13.2.1 路由與視圖函數 434
13.2.2 使用Jinja2編寫模板文件 436
13.2.3 Admin後臺繫統 439
13.3 測試與運行 440
13.3.1 測試 440
13.3.2 運行與上線 442
13.4 本章小結 445
第14章 個人博客繫統的設計與實現 447
14.1 項目設計與配置 447
14.1.1 項目架構設計 450
14.1.2 功能配置 451
14.1.3 數據表架構設計 453
14.1.4 定義路由列表 456
14.1.5 編寫共用模板 457
14.2 注冊與登錄 460
14.3 博主資料信息 464
14.4 圖片牆功能 466
14.5 留言板功能 468
14.6 文章列表 472
14.7 文章正文內容 475
14.8 Admin後臺繫統 479
14.8.1 模型的數據管理 479
14.8.2 自定義Admin的登錄頁面 483
14.8.3 Django CKEditor生成文章編輯器 485
14.9 測試與部署 488
14.9.1 測試業務邏輯 488
14.9.2 上線部署 492
14.10 本章小結 493
第15章 音樂網站ping臺的設計與實現 495
15.1 項目設計與配置 495
15.1.1 項目架構設計 499
15.1.2 功能配置 500
15.1.3 數據表架構設計 502
15.1.4 定義路由列表 506
15.1.5 編寫共用模板 507
15.2 網站首頁 507
15.3 歌曲排行榜 513
15.4 歌曲搜索 517
15.5 歌曲播放與下載 521
15.6 歌曲點評 528
15.7 注冊與登錄 533
15.8 用戶中心 537
15.9 Admin後臺繫統 541
15.10 自定義異常頁面 544
15.11 部署與運行 545
15.11.1 上線部署 546
15.11.2 網站試運行 547
15.12 本章小結 548
第16章 基於前後端分離與微服務架構的網站開發 550
16.1 Vue框架 550
16.1.1 Vue開發產品信息頁 550
16.1.2 Vue發送AJAX請求 554
16.2 Django開發API接口 555
16.2.1 簡化Django內置功能 555
16.2.2 設置跨域訪問 557
16.2.3 使用路由視圖開發API接口 558
16.2.4 DRF框架開發API接口 561
16.3 微服務架構 562
16.3.1 微服務實現原理 562
16.3.2 功能拆分 565
16.3.3 設計API網關 569
16.3.4 調試與運行 572
16.4 JWT認證 573
16.4.1 認識JWT 573
16.4.2 DRF的JWT 574
16.5 微服務注冊與發現 582
16.5.1 常用的服務注冊與發現框架 582
16.5.2 Consul的安裝與接口 583
16.5.3 Django與Consul的交互 587
16.5.4 服務的運行與部署 592
16.5.5 服務的負載均衡 596
16.6 本章小結 597
第17章 Django項目上線部署 599
17.1 基於Windows部署Django 599
17.1.1 安裝IIS服務器 599
17.1.2 創建項目站點 601
……
附錄