作 者:黃永祥 著
定 價:139
出 版 社:清華大學出版社
出版日期:2021年07月01日
頁 數:640
裝 幀:平裝
ISBN:9787302580317
"本書編者是一位資深的開發人員,他以多年使用Django開發項目的經驗,向讀者展示了Django這一流行框架的強大、靈活與高效。書中循序漸進地介紹了Django的基本概念、功能特性、工具應用以及企業級開發技術,並對Django 3的新特性也進行了詳細講解。本書從邏輯上主要分為基礎篇和實戰篇兩部分,各部分說明如下:基礎篇主要介紹了Django 的各項功能及其使用,適合初次接觸Django的初學者快速入門,這一部分的內容包括:Django的項目配置、路由的編寫規則、視圖函數的定義方法、視等
●第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.測試 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
17.1.3 配置靜態資源 604
17.2 基於Linux部署Django 605
17.2.1 安裝Linux虛擬機 605
17.2.2 安裝Python 3 611
17.2.3 部署uWSGI服務器 612
17.2.4 安裝Nginx部署項目 615
17.3 本章小結 616
附錄A Django面試題 618
附錄B Django資源列表 622
本書以Django Web項目開發為主線,深入繫統地介紹了Django 3在Web開發中的應用。從網站開發入門開始,逐步深入講述Django框架的各功能要點,每個功能要點從源碼角度分析,並在源碼的基礎上實現自定義的功能開發。還介紹了Django的第三方功能應用,如DRF框架開發API接口、生成網站驗證碼、站內搜索引擎、第三方網站實現賬號注冊、異步任務和定時任務、即時通信實現在線聊天。本書提供了4個實戰案例,包括信息反饋平臺、博客繫統、音樂網站平臺、前後端分離與微服務架構,涵蓋了網站的單體式開發、前後端分離和微服務開發,從單一的網站開發轉變到網站架構設計開發。最後講述Django的上線部署方案,分別講述Django如何部署在Windows和Linux繫統上。本書內容豐富,技術新穎,注重實戰,適合有一定Python基礎的Web開發人員閱讀,也可用作培訓機構和大中專院校相關專業的教學參考書。
黃永祥 著
黃永祥,信息管理與信息繫統專業學士,曾從事過繫統開發和自動化開發,精通B/S和C/S自動化測試技術,多年網絡爬蟲開發經驗,對反爬蟲機制有獨到的見解,精通Flask、Django等Web框架並有豐富的網站開發經驗。曾就職於廣州易點科技有限公司,擔任Python開發工程師,目前就職於廣東數據集成有限公司。熱愛分享和新技術的探索,在CSDN上發表多篇Python技術文章。