Django 實戰 Python Web 典型模塊與項目開發
內容描述
本書結合樣例,介紹 Django 的基礎知識、主要模塊的開發以及權限管理等高級內容,
並且通過圖書管理系統、博客系統、車費管理系統 3 個項目的開發實戰,
使讀者既能掌握 Django 的重要開發技術,又能對這些知識在項目中的綜合應用有深入瞭解。
本書共有 16 章,分為 3 個篇章,準備篇介紹了 Web 框架以及 Django 的基本知識;
入門篇詳細講解了路由系統、模板系統等5 個主要模塊的開發過程,
並通過圖書管理系統和博客系統的開發綜合應用這些知識;
進階篇介紹了 AJAX、中間件、權限管理等內容,並完成了車費管理系統的項目開發。
本書講解詳細,內容通俗易懂,案例豐富,
適合 Python 進階讀者或 Django 開發入門讀者閱讀,
也可以作為 Web 開發人員或編程愛好者的自學參考。
目錄大綱
目錄:
第一篇準備篇
第1章Python和Web開發框架2
1.1 Python簡介3
1.2 Web開發框架基本知識3
1.2.1 Web應用本質3
1.2.2 Web開發框架核心功能5
1.2.3 HTTP簡單介紹8
1.2.4 HTTP請求消息格式9
1.2.5 HTTP響應消息格式9
1.3 Python Web開發框架10
1.4小結11
第2章初識Django 12
2.1 Django安裝13
2.1.1安裝Python 13
2.1.2安裝Python虛擬環境14
2.1.3安裝Django 14
2.1.4測試安裝效果15
2.2 Django基本知識15
2.2. 1 Django的開發優勢15
2.2.2 Django的MTV設計模式簡介16
2.2.3 Django的其他功能18
2.2.4 Django的主要文件18
2.3 Django基本開發流程19
2.3.1部署開發環境19
2.3.2創建項目19
2.3.3創建應用程序20
2.3.4編寫業務邏輯代碼20
2.3.5建立URL與視圖函數的對應關係20
2.3.6動態加載HTML頁面21
2.3.7配置靜態文件存放位置23
2.3.8連接數據庫27
2.3.9 Django後台管理29
2.4小結30
第二篇入門篇
第3章Django ORM 32
3.1 Django ORM的特點33
3.1.1 Django ORM的優點33
3.1.2 Django ORM的缺點33
3.1.3 Django ORM的模式特徵33
3.2 Django ORM的用法34
3.2.1數據庫連接34
3.2 .2創建數據模型34
3.2.3 Django ORM字段35
3.2.4 Django ORM基本數據操作37
3.2.5 Django ORM數據操作常用函數38
3.3樣例1:數據庫表操作40
3.3.1準備工作40
3.3.2建立路由與視圖函數對應關係42
3.3.3編寫視圖函數44
3.3.4 employee數據模型的操作57
3.4 Django ORM跨表操作65
3.4.1與外鍵有關的跨表操作65
3.4.2與多對多鍵有關的跨表操作69
3.4.3與一對一鍵有關的跨表操作71
3.5 Django ORM聚合與分組查詢73
3.5.1聚合查詢73
3.5.2分組查詢74
3.6 Django ORM中的F和Q函數75
3.6.1 F函數75
3.6.2 Q函數76
3.7小結76
第4章Django路由系統77
4.1路由系統基本配置78
4.1.1路由系統URL基本格式78
4.1.2 path()的URL參數79
4.1.3 re_path()函數79
4.1.4路由分發80
4.1.5路由命名81
4.1.6路由命名空間82
4.2樣例2:路由系統開發83
4.2.1路由系統應用的簡單流程83
4.2.2帶參數的路由應用86
4.2.3帶參數的命名URL配置87
4.3小結89
第5章Django視圖90
5.1樣例3:視圖函數簡單介紹91
5.1.1視圖樣例91
5.1.2 HttpRequest對象和HttpResponse對象93
5.1.3視圖函數響應“三劍客” 96
5.2基於類的通用視圖99
5.2.1 TemplateView類通用視圖100
5.2.2 ListView類通用視圖101
5.2.3 DetailView類通用視圖104
5.3樣例4:Django視圖應用開發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小結123
第6章Django模板系統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:模板開發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員工相關頁面美化147
6.4.7其他頁面美化156
6.5小結158
第7章Django Form組件159
7.1前期環境準備160
7.1.1 Django Form表單的主要功能160
7.1.2 Django Form簡單開發流程介紹160
7.1.3編寫Django Form對像類160
7.1.4建立URL與視圖函數對應關係161
7.1.5視圖函數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組件開發167
7.3.1開發準備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開發195
7.5.1 ModelForm表單類195
7.5.2列表頁面197
7.5. 3賬號增加198
7.5.4賬號修改199
7.5.5賬號刪除200
7.6小結200
第8章圖書管理系統開發201
8.1系統數據庫建立202
8.1.1建立應用程序202
8.1.2建立數據庫表202
8.1.3建立系統超級用戶205
8.1.4數據模型註冊205
8.1.5運行程序206
8.1.6附加說明206
8.2圖書管理系統完善207
8.2.1部分配置207
8.2.2頁面功能完善208
8.2.3批處理功能214
8.2.4權限管理215
8.3小結216
第9章博客系統開發217
9.1創建博客系統218
9.1.1開發環境初步配置218
9.1.2安裝django-ckeditor 218
9.1.3安裝pillow 218
9.1.4創建項目218
9.1.5註冊博客應用程序220
9.1.6數據庫選擇220
9.2博客系統應用程序開發220
9.2.1項目數據庫表結構設計220
9.2.2 CKEditor富文本編輯器相關知識介紹226
9.2.3生成數據庫表233
9.2.4建立超級用戶233
9.2.5在管理後台註冊數據模型233
9.3用戶註冊234
9.3.1 URL配置234
9.3.2用戶註冊Form表單235
9.3.3用戶註冊視圖函數239
9.3.4用戶註冊頁面241
9.4用戶登錄247
9.4.1 URL配置247
9.4.2用戶登錄視圖函數247
9.4.3用戶登錄頁面248
9.5博客系統的母版249
9.5.1母版HTML文件250
9.5.2項目的自定義標籤257
9.5.3母版中的4個欄目的鏈接功能258
9.5.4母版其他功能262
9.6博客系統首頁264
9.6.1博客首頁通用視圖函數264
9.6.2博客首頁模板文件268
9.6.3頭像鏈接功能271
9.7博客系統檢索功能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創建search.html 276
9.7.7創建索引文件278
9.8文章發布279
9.9文章評論279
9.9.1創建評論應用程序279
9.9.2評論系統的數據模型280
9.9.3文章評論表單280
9.9.4文章評論URL配置281
9.9.5文章評論視圖函數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小結289
第三篇進階篇
第10章分頁組件的設計292
10.1樣例8:普通分頁編寫293
10.1.1 URL配置293
10.1 .2數據模型293
10.1.3視圖函數294
10.2分頁組件298
10.2.1分頁組件299
10.2.2調用分頁組件302
10.3小結303
第11章Django調用AJAX編程304
11.1 AJAX基本知識305
11.1.1 JSON基本知識305
11.1.2 AJAX簡單使用307
11.2樣例9:AJAX應用開發311
11.2.1 URL配置311
11.2.2數據模型311
11.2.3員工列表及記錄刪除311
11.2.4員工信息增加315
11.3小結321
第12章Django中間件開發322
12.1 Django中間件基本知識323
12.1.1中間件配置323
12.1 .2中間件的方法323
12.1.3中間件執行流程325
12.2樣例10:Django中間件編程327
12.2.1 URL配置327
12.2.2視圖函數328
12.2.3註冊自定義中間件329
12.2.4測試中間件330
12.3小結331
第13章基於Django認證系統的權限管理開發332
13.1 Django認證系統簡介333
13.1.1認證系統基本知識333
13.1.2默認權限設置333
13.1.3創建自定義權限的方法334
13.2基於Django認證系統的權限管理開發335
13.2.1創建能增加權限的數據模型335
13.2.2註冊數據模型336
13.3建立測試系統336
13.3.1測試系統視圖函數337
13.3.2測試系統母版338
13.3.3用戶列表頁面339
13.3 .4測試系統URL配置340
13.4權限梳理與分配341
13.4.1權限記錄整理341
13.4.2權限記錄輸入342
13.4.3權限分配342
13.4.4測試系統342
13.5小結343
第14章Django通用權限管理設計344
14.1基於RBAC的通用權限管理實現345
14.1.1 RBAC權限管理模塊文件目錄結構345
14.1.2數據庫表結構設計347
14.1.3 Role表的構建347
14.1.4 UserInfo表的構建348
14.1.5 Permission表的構建348
14.1.6 PermGroup表的構建350
14.1.7 Menu表的構建350
14.1.8生成數據庫表351
14.1.9補充說明351
14.1.10用戶權限數據初始化配置352
14.1.11利用中間件驗證用戶權限356
14.1.12生成系統菜單所需數據359
14.2樣例11:RBAC權限管理在項目中的應用364
14.2.1引入RBAC權限管理的基本流程364
14.2.2 RBAC權限管理模塊部署到新項目364
14.2.3複製及新建相關文件364
14.2.4配置參數365
14.2.5測試項目的結構367
14.2.6權限分配管理375
14.3小結379
第15章基於權限管理的車費管理系統開發380
15.1開發準備381
15.1.1生成項目和應用381
15.1.2導入RBAC模塊382
15.2建立數據模型383
15.2.1數據模型設計383
15.2.2生成數據庫表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車費統計439
15.10.1 URL配置439
15.10.2車費統計視圖439
15.11增加權限管理445
15.11.1權限梳理445
15.11.2權限數據輸入及權限分配447
15.11.3權限管理源代碼調整447
15.11. 4添加URL白名單448
15.11.5視圖函數代碼調整449
15.11.6視圖函數login()代碼調整449
15.11.7 base.html代碼調整449
15.11.8頁面代碼調整451
15.11.9權限測試452
15.12小結452
第16章應用項目部署453
16.1準備工作454
16.1.1基本知識454
16.1.2安裝環境簡介455
16.1.3準備工作455
16.2安裝MySQL數據庫456
16.2.1安裝MySQL數據庫456
16.2.2配置MySQL數據庫457
16.2.3生成項目數據庫458
16.3 Python環境部署458
16.3.1關於Python 458
16.3.2升級pip 459
16.4安裝uWSGI服務器459
16.4.1安裝uWSGI 459
16.4.2測試uWSGI 460
16.5安裝Nginx服務器461
16.5.1安裝Nginx 461
16.5.2測試Nginx 461
16.6項目部署前的工作461
16.6.1修改項目配置461
16.6.2服務器上的目錄設置462
16.6.3項目代碼上傳462
16.6.4安裝虛擬環境463
16.6.5在服務器上配置項目463
16.7配置Nginx和uWSGI 464
16.7.1配置Nginx 464
16.7.2配置uWSGI 465
16.8測試466
16.9小結466
作者介紹
張曉
山東能源集團(世界 500 強)信息管理員,軟件開發工程師。
曾獨立開發物流管理、機房運維管理、機關考勤管理、物業管理、
車費管理等多個應用系統;並規劃設計與實施了數據中心、
私有云項目建設;此外在數據倉庫、BI 分析、門戶網站建設方面也有豐富的實戰經驗。