Django實戰(zhàn) Python Web典型模塊與項目開發(fā)
定 價:108 元
- 作者:張曉
- 出版時間:2020/10/1
- ISBN:9787115540201
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁碼:466
- 紙張:
- 版次:01
- 開本:16開
本書結(jié)合樣例,介紹 Django 的基礎(chǔ)知識、主要模塊的開發(fā)以及權(quán)限管理等高級內(nèi)容,并且通過圖書管理系統(tǒng)、博客系統(tǒng)、車費管理系統(tǒng) 3 個項目的開發(fā)實戰(zhàn),使讀者既能掌握 Django 的重要開發(fā)技術(shù),又能對這些知識在項目中的綜合應(yīng)用有深入了解。
本書共有 16 章,分為 3 個篇章,準備篇介紹了 Web 框架以及 Django 的基本知識;入門篇詳細講解了路由系統(tǒng)、模板系統(tǒng)等5 個主要模塊的開發(fā)過程,并通過圖書管理系統(tǒng)和博客系統(tǒng)的開發(fā)綜合應(yīng)用這些知識;進階篇介紹了 AJAX、中間件、權(quán)限管理等內(nèi)容,并完成了車費管理系統(tǒng)的項目開發(fā)。
本書講解詳細,內(nèi)容通俗易懂,案例豐富,適合 Python 進階讀者或 Django 開發(fā)入門讀者閱讀,也可以作為 Web 開發(fā)人員或編程愛好者的自學(xué)參考。
1.內(nèi)容實用:凝聚作者多年開發(fā)經(jīng)驗,深入淺出剖析技術(shù)細節(jié);
2.系統(tǒng)全面:從基礎(chǔ)知識、典型模塊到項目開發(fā),詳解Django開發(fā);
3.案例豐富:面向不同應(yīng)用場景,逐步實現(xiàn)多個開發(fā)案例。
張曉
山東能源集團(世界 500 強)信息管理員,軟件開發(fā)工程師。曾獨立開發(fā)物流管理、機房運維管理、機關(guān)考勤管理、物業(yè)管理、車費管理等多個應(yīng)用系統(tǒng);并規(guī)劃設(shè)計與實施了數(shù)據(jù)中心、私有云項目建設(shè);此外在數(shù)據(jù)倉庫、BI 分析、門戶網(wǎng)站建設(shè)方面也有豐富的實戰(zhàn)經(jīng)驗。
第 一篇 準備篇
第 1章 Python 和Web 開發(fā)框架 2
1.1 Python 簡介 3
1.2 Web 開發(fā)框架基本知識 3
1.2.1 Web 應(yīng)用本質(zhì) 3
1.2.2 Web 開發(fā)框架核心功能 5
1.2.3 HTTP 簡單介紹 8
1.2.4 HTTP 請求消息格式 9
1.2.5 HTTP 響應(yīng)消息格式 9
1.3 Python Web 開發(fā)框架 10
1.4 小結(jié) 11
第 2章 初識Django 12
2.1 Django 安裝 13
2.1.1 安裝Python 13
2.1.2 安裝Python 虛擬環(huán)境 14
2.1.3 安裝Django 14
2.1.4 測試安裝效果 15
2.2 Django 基本知識 15
2.2.1 Django 的開發(fā)優(yōu)勢 15
2.2.2 Django 的MTV 設(shè)計模式簡介 16
2.2.3 Django 的其他功能 18
2.2.4 Django 的主要文件 18
2.3 Django 基本開發(fā)流程 19
2.3.1 部署開發(fā)環(huán)境 19
2.3.2 創(chuàng)建項目 19
2.3.3 創(chuàng)建應(yīng)用程序 20
2.3.4 編寫業(yè)務(wù)邏輯代碼 20
2.3.5 建立URL 與視圖函數(shù)的對應(yīng)關(guān)系 20
2.3.6 動態(tài)加載HTML 頁面 21
2.3.7 配置靜態(tài)文件存放位置 23
2.3.8 連接數(shù)據(jù)庫 27
2.3.9 Django 后臺管理 29
2.4 小結(jié) 30
第二篇 入門篇
第3 章 Django ORM 32
3.1 Django ORM 的特點 33
3.1.1 Django ORM 的優(yōu)點 33
3.1.2 Django ORM 的缺點 33
3.1.3 Django ORM 的模式特征 33
3.2 Django ORM 的用法 34
3.2.1 數(shù)據(jù)庫連接 34
3.2.2 創(chuàng)建數(shù)據(jù)模型 34
3.2.3 Django ORM 字段 35
3.2.4 Django ORM 基本數(shù)據(jù)操作 37
3.2.5 Django ORM 數(shù)據(jù)操作常用函數(shù) 38
3.3 樣例1:數(shù)據(jù)庫表操作 40
3.3.1 準備工作 40
3.3.2 建立路由與視圖函數(shù)對應(yīng)關(guān)系 42
3.3.3 編寫視圖函數(shù) 44
3.3.4 employee 數(shù)據(jù)模型的操作 57
3.4 Django ORM 跨表操作 65
3.4.1 與外鍵有關(guān)的跨表操作 65
3.4.2 與多對多鍵有關(guān)的跨表操作 69
3.4.3 與一對一鍵有關(guān)的跨表操作 71
3.5 Django ORM 聚合與分組查詢 73
3.5.1 聚合查詢 73
3.5.2 分組查詢 74
3.6 Django ORM 中的F 和Q
函數(shù) 75
3.6.1 F 函數(shù) 75
3.6.2 Q 函數(shù) 76
3.7 小結(jié) 76
第4 章 Django 路由系統(tǒng) 77
4.1 路由系統(tǒng)基本配置 78
4.1.1 路由系統(tǒng)URL 基本格式 78
4.1.2 path()的URL 參數(shù) 79
4.1.3 re_path()函數(shù) 79
4.1.4 路由分發(fā) 80
4.1.5 路由命名 81
4.1.6 路由命名空間 82
4.2 樣例2:路由系統(tǒng)開發(fā) 83
4.2.1 路由系統(tǒng)應(yīng)用的簡單流程 83
4.2.2 帶參數(shù)的路由應(yīng)用 86
4.2.3 帶參數(shù)的命名URL 配置 87
4.3 小結(jié) 89
第5 章 Django 視圖 90
5.1 樣例3:視圖函數(shù)簡單介紹 91
5.1.1 視圖樣例 91
5.1.2 HttpRequest 對象和HttpResponse
對象 93
5.1.3 視圖函數(shù)響應(yīng)“三劍客” 96
5.2 基于類的通用視圖 99
5.2.1 TemplateView 類通用視圖 100
5.2.2 ListView 類通用視圖 101
5.2.3 DetailView 類通用視圖 104
5.3 樣例4:Django 視圖應(yīng)用開發(fā) 107
5.3.1 準備工作 107
5.3.2 URL 配置 109
5.3.3 用戶登錄 110
5.3.4 列表頁面 114
5.3.5 人員增加頁面 116
5.3.6 人員修改頁面 120
5.3.7 人員刪除 122
5.4 小結(jié) 123
第6 章 Django 模板系統(tǒng) 124
6.1 Django 模板基本語法 125
6.1.1 模板文件 125
6.1.2 模板變量 126
6.1.3 模板注釋 129
6.1.4 過濾器 129
6.1.5 模板標簽 131
6.2 母版和繼承 137
6.2.1 母版 137
6.2.2 繼承 138
6.3 組件 139
6.4 樣例5:模板開發(fā) 139
6.4.1 準備工作 140
6.4.2 Bootstrap 用法簡介 140
6.4.3 Font Awesome 用法簡介 142
6.4.4 生成母版base.html 143
6.4.5 編寫index.html 頁面 145
6.4.6 員工相關(guān)頁面美化 147
6.4.7 其他頁面美化 156
6.5 小結(jié) 158
第7 章 Django Form 組件 159
7.1 前期環(huán)境準備 160
7.1.1 Django Form 表單的主要功能 160
7.1.2 Django Form 簡單開發(fā)流程介紹 160
7.1.3 編寫Django Form 對象類 160
7.1.4 建立URL 與視圖函數(shù)對應(yīng)關(guān)系 161
7.1.5 視圖函數(shù) 161
7.1.6 頁面代碼 162
7.1.7 運行測試 163
7.2 Django Form 字段 163
7.2.1 Django Form 字段屬性 164
7.2.2 Django Form 常用字段 166
7.3 樣例6:Django Form 組件
開發(fā) 167
7.3.1 開發(fā)準備 167
7.3.2 登錄頁面 171
7.3.3 列表頁面 176
7.3.4 賬號增加 180
7.3.5 賬號修改 187
7.4 Django ModelForm 組件 193
7.4.1 Django ModelForm 定義 193
7.4.2 Django ModelForm 主要方法 194
7.5 樣例7:Django ModelForm
開發(fā) 195
7.5.1 ModelForm 表單類 195
7.5.2 列表頁面 197
7.5.3 賬號增加 198
7.5.4 賬號修改 199
7.5.5 賬號刪除 200
7.6 小結(jié) 200
第8 章 圖書管理系統(tǒng)開發(fā) 201
8.1 系統(tǒng)數(shù)據(jù)庫建立 202
8.1.1 建立應(yīng)用程序 202
8.1.2 建立數(shù)據(jù)庫表 202
8.1.3 建立系統(tǒng)超級用戶 205
8.1.4 數(shù)據(jù)模型注冊 205
8.1.5 運行程序 206
8.1.6 附加說明 206
8.2 圖書管理系統(tǒng)完善 207
8.2.1 部分配置 207
8.2.2 頁面功能完善 208
8.2.3 批處理功能 214
8.2.4 權(quán)限管理 215
8.3 小結(jié) 216
第9 章 博客系統(tǒng)開發(fā) 217
9.1 創(chuàng)建博客系統(tǒng) 218
9.1.1 開發(fā)環(huán)境初步配置 218
9.1.2 安裝django-ckeditor 218
9.1.3 安裝pillow 218
9.1.4 創(chuàng)建項目 218
9.1.5 注冊博客應(yīng)用程序 220
9.1.6 數(shù)據(jù)庫選擇 220
9.2 博客系統(tǒng)應(yīng)用程序開發(fā) 220
9.2.1 項目數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計 220
9.2.2 CKEditor 富文本編輯器相關(guān)知識
介紹 226
9.2.3 生成數(shù)據(jù)庫表 233
9.2.4 建立超級用戶 233
9.2.5 在管理后臺注冊數(shù)據(jù)模型 233
9.3 用戶注冊 234
9.3.1 URL 配置 234
9.3.2 用戶注冊Form 表單 235
9.3.3 用戶注冊視圖函數(shù) 239
9.3.4 用戶注冊頁面 241
9.4 用戶登錄 247
9.4.1 URL 配置 247
9.4.2 用戶登錄視圖函數(shù) 247
9.4.3 用戶登錄頁面 248
9.5 博客系統(tǒng)的母版 249
9.5.1 母版HTML 文件 250
9.5.2 項目的自定義標簽 257
9.5.3 母版中的4 個欄目的鏈接功能 258
9.5.4 母版其他功能 262
9.6 博客系統(tǒng)首頁 264
9.6.1 博客首頁通用視圖函數(shù) 264
9.6.2 博客首頁模板文件 268
9.6.3 頭像鏈接功能 271
9.7 博客系統(tǒng)檢索功能 272
9.7.1 安裝Django Haystack 273
9.7.2 更改Django Haystack 分詞器 273
9.7.3 配置Django Haystack 273
9.7.4 建立索引類 274
9.7.5 URL 配置 275
9.7.6 創(chuàng)建search.html 276
9.7.7 創(chuàng)建索引文件 278
9.8 文章發(fā)布 279
9.9 文章評論 279
9.9.1 創(chuàng)建評論應(yīng)用程序 279
9.9.2 評論系統(tǒng)的數(shù)據(jù)模型 280
9.9.3 文章評論表單 280
9.9.4 文章評論URL 配置 281
9.9.5 文章評論視圖函數(shù) 281
9.9.6 文章評論模板 283
9.9.7 文章評論部分頁面 284
9.10 文章詳細頁面 285
9.10.1 文章詳細頁面URL 配置 285
9.10.2 文章詳細頁面視圖 285
9.10.3 文章詳細頁面模板文件 286
9.10.4 文章詳細頁面顯示 289
9.11 小結(jié) 289
第三篇 進階篇
第 10 章 分頁組件的設(shè)計 292
10.1 樣例8:普通分頁編寫 293
10.1.1 URL 配置 293
10.1.2 數(shù)據(jù)模型 293
10.1.3 視圖函數(shù) 294
10.2 分頁組件 298
10.2.1 分頁組件 299
10.2.2 調(diào)用分頁組件 302
10.3 小結(jié) 303
第 11 章 Django 調(diào)用AJAX
編程 304
11.1 AJAX 基本知識 305
11.1.1 JSON 基本知識 305
11.1.2 AJAX 簡單使用 307
11.2 樣例9:AJAX 應(yīng)用開發(fā) 311
11.2.1 URL 配置 311
11.2.2 數(shù)據(jù)模型 311
11.2.3 員工列表及記錄刪除 311
11.2.4 員工信息增加 315
11.3 小結(jié) 321
第 12 章 Django 中間件開發(fā) 322
12.1 Django 中間件基本知識 323
12.1.1 中間件配置 323
12.1.2 中間件的方法 323
12.1.3 中間件執(zhí)行流程 325
12.2 樣例10:Django 中間件
編程 327
12.2.1 URL 配置 327
12.2.2 視圖函數(shù) 328
12.2.3 注冊自定義中間件 329
12.2.4 測試中間件 330
12.3 小結(jié) 331
第 13 章 基于Django 認證系統(tǒng)
的權(quán)限管理開發(fā) 332
13.1 Django 認證系統(tǒng)簡介 333
13.1.1 認證系統(tǒng)基本知識 333
13.1.2 默認權(quán)限設(shè)置 333
13.1.3 創(chuàng)建自定義權(quán)限的方法 334
13.2 基于Django 認證系統(tǒng)的權(quán)限
管理開發(fā) 335
13.2.1 創(chuàng)建能增加權(quán)限的數(shù)據(jù)模型 335
13.2.2 注冊數(shù)據(jù)模型 336
13.3 建立測試系統(tǒng) 336
13.3.1 測試系統(tǒng)視圖函數(shù) 337
13.3.2 測試系統(tǒng)母版 338
13.3.3 用戶列表頁面 339
13.3.4 測試系統(tǒng)URL 配置 340
13.4 權(quán)限梳理與分配 341
13.4.1 權(quán)限記錄整理 341
13.4.2 權(quán)限記錄輸入 342
13.4.3 權(quán)限分配 342
13.4.4 測試系統(tǒng) 342
13.5 小結(jié) 343
第 14 章 Django 通用權(quán)限管理
設(shè)計 344
14.1 基于RBAC 的通用權(quán)限管理
實現(xiàn) 345
14.1.1 RBAC 權(quán)限管理模塊文件目錄
結(jié)構(gòu) 345
14.1.2 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計 347
14.1.3 Role 表的構(gòu)建 347
14.1.4 UserInfo 表的構(gòu)建 348
14.1.5 Permission 表的構(gòu)建 348
14.1.6 PermGroup 表的構(gòu)建 350
14.1.7 Menu 表的構(gòu)建 350
14.1.8 生成數(shù)據(jù)庫表 351
14.1.9 補充說明 351
14.1.10 用戶權(quán)限數(shù)據(jù)初始化配置 352
14.1.11 利用中間件驗證用戶權(quán)限 356
14.1.12 生成系統(tǒng)菜單所需數(shù)據(jù) 359
14.2 樣例11:RBAC 權(quán)限管理在
項目中的應(yīng)用 364
14.2.1 引入RBAC 權(quán)限管理的基本
流程 364
14.2.2 RBAC 權(quán)限管理模塊部署到
新項目 364
14.2.3 復(fù)制及新建相關(guān)文件 364
14.2.4 配置參數(shù) 365
14.2.5 測試項目的結(jié)構(gòu) 367
14.2.6 權(quán)限分配管理 375
14.3 小結(jié) 379
第 15 章 基于權(quán)限管理的車費
管理系統(tǒng)開發(fā) 380
15.1 開發(fā)準備 381
15.1.1 生成項目和應(yīng)用 381
15.1.2 導(dǎo)入RBAC 模塊 382
15.2 建立數(shù)據(jù)模型 383
15.2.1 數(shù)據(jù)模型設(shè)計 383
15.2.2 生成數(shù)據(jù)庫表 385
15.3 用戶登錄和注銷 385
15.3.1 用戶登錄 385
15.3.2 用戶注銷 387
15.4 建立母版文件 388
15.4.1 母版文件 388
15.4.2 頁面頭部 390
15.4.3 首頁 390
15.5 車輛信息維護 391
15.5.1 URL 配置 391
15.5.2 車輛信息查看 392
15.5.3 車輛信息增加 393
15.5.4 車輛信息修改 395
15.5.5 車輛信息刪除 397
15.6 部門信息維護 397
15.6.1 URL 配置 397
15.6.2 部門信息列表 398
15.6.3 部門信息增加 399
15.6.4 部門信息修改 400
15.6.5 部門信息刪除 402
15.7 用戶分配 402
15.7.1 URL 配置 402
15.7.2 用戶列表 402
15.7.3 用戶分配到部門 404
15.8 車費上報 407
15.8.1 URL 配置 407
15.8.2 車費信息列表 407
15.8.3 車費信息增加 412
15.8.4 車費信息修改 420
15.9 車費審批 427
15.9.1 URL 配置 427
15.9.2 引入分頁組件 427
15.9.3 車費審批功能 427
15.9.4 取消審批功能 437
15.10 車費統(tǒng)計 439
15.10.1 URL 配置 439
15.10.2 車費統(tǒng)計視圖 439
15.11 增加權(quán)限管理 445
15.11.1 權(quán)限梳理 445
15.11.2 權(quán)限數(shù)據(jù)輸入及權(quán)限分配 447
15.11.3 權(quán)限管理源代碼調(diào)整 447
15.11.4 添加URL 白名單 448
15.11.5 視圖函數(shù)代碼調(diào)整 449
15.11.6 視圖函數(shù)login()代碼調(diào)整 449
15.11.7 base.html 代碼調(diào)整 449
15.11.8 頁面代碼調(diào)整 451
15.11.9 權(quán)限測試 452
15.12 小結(jié) 452
第 16 章 應(yīng)用項目部署 453
16.1 準備工作 454
16.1.1 基本知識 454
16.1.2 安裝環(huán)境簡介 455
16.1.3 準備工作 455
16.2 安裝MySQL 數(shù)據(jù)庫 456
16.2.1 安裝MySQL 數(shù)據(jù)庫 456
16.2.2 配置MySQL 數(shù)據(jù)庫 457
16.2.3 生成項目數(shù)據(jù)庫 458
16.3 Python 環(huán)境部署 458
16.3.1 關(guān)于Python 458
16.3.2 升級pip 459
16.4 安裝uWSGI 服務(wù)器 459
16.4.1 安裝uWSGI 459
16.4.2 測試uWSGI 460
16.5 安裝Nginx 服務(wù)器 461
16.5.1 安裝Nginx 461
16.5.2 測試Nginx 461
16.6 項目部署前的工作 461
16.6.1 修改項目配置 461
16.6.2 服務(wù)器上的目錄設(shè)置 462
16.6.3 項目代碼上傳 462
16.6.4 安裝虛擬環(huán)境 463
16.6.5 在服務(wù)器上配置項目 463
16.7 配置Nginx 和uWSGI 464
16.7.1 配置Nginx 464
16.7.2 配置uWSGI 465
16.8 測試 466
16.9 小結(jié) 466