隨著Python開(kāi)發(fā)者的增多,Django作為一款高性能的Python Web開(kāi)發(fā)框架,受關(guān)注的程度也日漸提升,越來(lái)越多的企業(yè)選擇使用Django進(jìn)行網(wǎng)站開(kāi)發(fā)。
本書詳細(xì)剖析了Django 3.0的各個(gè)知識(shí)點(diǎn),幫助讀者全面認(rèn)識(shí)Django 3.0的技術(shù)細(xì)節(jié)以應(yīng)用于實(shí)踐,書中所有示例均基于Python 3.8實(shí)現(xiàn)。
【全書共15章,主要針對(duì)以下內(nèi)容進(jìn)行講解】
Django 3.0的新特性,以及它與其他框架的區(qū)別。
Django環(huán)境搭建方法以及默認(rèn)情況下的工程內(nèi)容。
Django中各類管理命令及其用法。
Django路由相關(guān)概念和路由調(diào)用的各種使用方式。
Django的請(qǐng)求響應(yīng)機(jī)制、常用的CBV、模型的各種字段及其使用形式。
Django嵌入結(jié)構(gòu)化查詢語(yǔ)言,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。
模板定義、模板變量、系統(tǒng)模板標(biāo)簽、系統(tǒng)模板過(guò)濾器相關(guān)內(nèi)容及其使用方法。
常用中間件Admin模塊的使用方法與技巧。
后用兩章內(nèi)容詳細(xì)講解了如何運(yùn)用Django技術(shù)搭建一個(gè)基本的CMS站點(diǎn),并介紹了相關(guān)的部署準(zhǔn)備以及發(fā)布流程。
【為什么要寫這本書】
Python作為當(dāng)前熱門的開(kāi)發(fā)語(yǔ)言,其重要的應(yīng)用之一就是進(jìn)行Web應(yīng)用開(kāi)發(fā)。Django是一款高性能的Python Web開(kāi)發(fā)框架,隨著Python相關(guān)的開(kāi)發(fā)者日益增多,越來(lái)越多的企業(yè)開(kāi)始使用Django進(jìn)行網(wǎng)站開(kāi)發(fā)。
作為一名Django框架的應(yīng)用者,我一路磕磕碰碰。隨著應(yīng)用的深入,對(duì)Django的理解逐漸加深,為此我也萌生了通過(guò)一定渠道來(lái)分享自己想法的念頭。
自2019年12月Django 30問(wèn)世以來(lái),我發(fā)現(xiàn)市面上以Django 30為基礎(chǔ)的計(jì)算機(jī)應(yīng)用書籍很少。眾人拾柴火焰高,我想自己可以嘗試寫本書來(lái)介紹Django 30的應(yīng)用,讓各類學(xué)習(xí)者與應(yīng)用者有更多的選擇。
從有想法到實(shí)現(xiàn)是個(gè)漫長(zhǎng)的過(guò)程。作為一個(gè)純粹的理科男,駕馭文字是件痛苦的事,不過(guò)幸好終我堅(jiān)持了下來(lái)。
在書的內(nèi)容布局方面,我做了一定的功課,借鑒了一些圖書的做法,同時(shí)也融入了自己的一些想法。為了避免有些讀者在閱讀時(shí)產(chǎn)生困惑,本書采用先指令、后框架的形式設(shè)計(jì)了各章,而在框架的表述中則采取了先頁(yè)面、后數(shù)據(jù)庫(kù)、再附加模塊的形式展開(kāi)闡述,希望讀者通過(guò)閱讀本書能夠循序漸進(jìn)地掌握這門框架技術(shù)的應(yīng)用。
【讀者對(duì)象】
這里根據(jù)軟件應(yīng)用程度劃分出一些能使用Django 30的用戶團(tuán)體:
各類Django初學(xué)者。
使用Django進(jìn)行網(wǎng)站開(kāi)發(fā)的各類Web開(kāi)發(fā)工程師。
采用Django框架進(jìn)行網(wǎng)絡(luò)設(shè)計(jì)的系統(tǒng)架構(gòu)師。
【如何閱讀本書】
本書細(xì)致闡述了如何很好地運(yùn)用Django 30進(jìn)行相關(guān)Web頁(yè)面的開(kāi)發(fā),在各個(gè)章節(jié)中分門別類地介紹了相關(guān)屬性、方法,并在相應(yīng)的應(yīng)用示例中進(jìn)一步演示了屬性、方法的使用情況。
如果想快速閱讀,可先總體看看本書目錄結(jié)構(gòu),從目錄的各個(gè)章節(jié)了解大體內(nèi)容,快速定位到自己感興趣的章節(jié),獲取相關(guān)信息。
對(duì)于初學(xué)者,建議按照目錄結(jié)構(gòu)認(rèn)真閱讀每一章。對(duì)于涉及示例的章節(jié),好自己搭建環(huán)境,輸入相關(guān)的代碼,確保深入理解各個(gè)Django知識(shí)點(diǎn)的應(yīng)用。
對(duì)于Web開(kāi)發(fā)工程師,可以就某些模塊重點(diǎn)查看相關(guān)示例,便于快速解決實(shí)際開(kāi)發(fā)過(guò)程中遇到的實(shí)際問(wèn)題。
對(duì)于系統(tǒng)架構(gòu)師,可以根據(jù)自身對(duì)Django框架的理解,翻看相關(guān)條目的屬性、方法介紹,回憶相關(guān)技術(shù)的應(yīng)用,進(jìn)行相關(guān)技術(shù)的選型。
●第1章 Django簡(jiǎn)介 1
11 什么是Django 1
12 Django與其他Web框架的對(duì)比 2
13 Django 30的新特性 2
14 小結(jié) 7
●第2章 搭建Django工程 8
21 Django的使用準(zhǔn)備 8
211 基礎(chǔ)知識(shí) 8
212 環(huán)境準(zhǔn)備 9
22 Django的初步使用 11
221 工程創(chuàng)建 11
222 工程調(diào)試設(shè)置 12
23 小結(jié) 14
●第3章 Django框架命令 15
31 框架命令的三種調(diào)用形式 15
32 框架命令的兩種運(yùn)行方式 16
321 CMD方式 16
322 代碼加載方式 16
33 常用命令介紹 16
331 數(shù)據(jù)庫(kù)操作命令 17
332 環(huán)境配置命令 22
333 開(kāi)發(fā)調(diào)試命令 24
34 小結(jié) 28
●第4章 路由應(yīng)用詳解 29
41 路由的概念 29
42 Django路由請(qǐng)求處理過(guò)程 29
43 Django路由的關(guān)聯(lián)概念 30
431 路由別名 30
432 路徑轉(zhuǎn)換器 30
44 路由異常處理的4種形式 31
45 創(chuàng)建路由urlpattern對(duì)象的方法 31
451 path()方法 32
452 re_path()方法 32
453 include()方法 32
454 register_converter()方法 33
455 static()方法 33
456 url()方法 33
46 路由使用示例講解 34
461 不同方式的路由設(shè)置 34
462 以包含方式調(diào)用路由 37
463 路由別名的使用 40
47 小結(jié) 44
●第5章 視圖應(yīng)用詳解:請(qǐng)求與響應(yīng) 45
51 請(qǐng)求響應(yīng)過(guò)程 45
52 請(qǐng)求響應(yīng)對(duì)象 46
521 HttpRequest對(duì)象的屬性 46
522 HttpRequest對(duì)象的方法 49
523 QueryDict對(duì)象的方法 50
524 HttpResponse對(duì)象的屬性 52
525 HttpResponse對(duì)象的方法 53
526 HttpResponse對(duì)象的子類 55
53 請(qǐng)求響應(yīng)示例 56
54 小結(jié) 60
●第6章 視圖應(yīng)用詳解:CBV 61
61 基本概念 61
611 CBV 61
612 Mixin 61
613 MRO 62
62 常用的CBV 62
621 基礎(chǔ)類 62
622 通用日期類 64
623 編輯類 73
624 顯示類 77
63 CBV運(yùn)用示例 78
631 基礎(chǔ)類使用示例 78
632 通用日期類使用示例 85
633 顯示類使用示例 89
634 編輯類使用示例 94
64 小結(jié) 100
●第7章 模型應(yīng)用詳解 101
71 模型字段 101
72 模型基本字段 103
73 模型的元數(shù)據(jù) 110
74 模型關(guān)聯(lián)字段 112
75 模型使用示例 112
751 常用模型字段的使用 112
752 模型屬性的應(yīng)用 117
753 模型元數(shù)據(jù)的應(yīng)用 122
754 關(guān)聯(lián)字段的應(yīng)用 126
76 小結(jié) 130
●第8章 數(shù)據(jù)庫(kù)相關(guān)配置 131
81 數(shù)據(jù)庫(kù)配置參數(shù)介紹 131
811 數(shù)據(jù)庫(kù)配置參數(shù)DATABASES 131
812 數(shù)據(jù)庫(kù)指標(biāo)表空間參數(shù)DEFAULT_INDEX_TABLESPACE 133
813 數(shù)據(jù)庫(kù)空間參數(shù)DEFAULT_TABLESPACE 133
814 數(shù)據(jù)庫(kù)路由參數(shù)DATABASE_ROUTERS 133
82 數(shù)據(jù)庫(kù)配置參數(shù)的使用 134
821 存在多個(gè)數(shù)據(jù)庫(kù)時(shí)的配置調(diào)用 135
822 多數(shù)據(jù)庫(kù)訪問(wèn)控制 136
823 特定數(shù)據(jù)庫(kù)參數(shù)的使用 140
824 使用選擇的配置項(xiàng) 143
83 小結(jié) 148
●第9章 數(shù)據(jù)庫(kù)操作 149
91 數(shù)據(jù)庫(kù)對(duì)象操作 150
92 數(shù)據(jù)庫(kù)數(shù)據(jù)操作 155
921 增加數(shù)據(jù)的方法 155
922 刪除數(shù)據(jù)的方法 161
923 修改數(shù)據(jù)的方法 162
924 查詢數(shù)據(jù)的方法 163
93 小結(jié) 169
●第10章 模板的使用 170
101 模板相關(guān)概念 170
1011 模板引擎 170
1012 模板變量 171
1013 模板標(biāo)簽 171
1014 模板過(guò)濾器 171
102 模板的使用過(guò)程 171
1021 配置模板 171
1022 創(chuàng)建模板 172
1023 加載模板 172
1024 渲染模板 172
103 模板關(guān)聯(lián)應(yīng)用 173
1031 模板搜索規(guī)則 173
1032 模板的變量使用 173
104 示例演示 174
1041 模板的使用 174
1042 模板搜索示例 177
1043 變量使用示例 183
105 小結(jié) 185
●第11章 模板標(biāo)簽 186
111 系統(tǒng)模板標(biāo)簽 186
112 模板標(biāo)簽示例 192
113 小結(jié) 197
●第12章 模板過(guò)濾器 198
121 系統(tǒng)模板過(guò)濾器 198
122 模板使用示例 204
123 小結(jié) 213
●第13章 管理應(yīng)用 214
131 Admin應(yīng)用核心對(duì)象 215
1311 ModelAdmin屬性 215
1312 ModelAdmin方法 220
132 Admin應(yīng)用關(guān)聯(lián)對(duì)象 226
1321 管理站點(diǎn)對(duì)象AdminSite 226
1322 內(nèi)嵌模型管理對(duì)象InlineModelAdmin 228
133 Admin應(yīng)用自定義設(shè)置 229
1331 自定義站點(diǎn)屬性 229
1332 自定義應(yīng)用站點(diǎn) 229
1333 自定義模型操作 230
1334 自定義應(yīng)用模板類 230
134 應(yīng)用及示例 231
1341 模型管理的基本運(yùn)用 231
1342 Admin應(yīng)用自定義模型的操作演示 238
1343 站點(diǎn)調(diào)整 240
135?小結(jié) 245
●第14章 CMS平臺(tái)架設(shè) 246
141 簡(jiǎn)版的CMS分析及設(shè)計(jì) 246
1411 業(yè)務(wù)場(chǎng)景分析 246
1412 角色設(shè)計(jì) 247
1413 持久化對(duì)象設(shè)計(jì) 247
142 實(shí)施CMS架設(shè) 249
1421?準(zhǔn)備基本工具 249
1422 CMS框架的搭建 249
1423 后臺(tái)管理模塊的搭建 262
1424 后臺(tái)業(yè)務(wù)模塊的搭建 278
1425 瀏覽模塊的搭建 290
1426 其他說(shuō)明 294
1427 運(yùn)行CMS 297
143 小結(jié) 300
●第15章 Django工程部署 301
151 關(guān)聯(lián)概念 301
1511 Web服務(wù)器 301
1512 軟件部署和網(wǎng)站部署 301
152 Django工程部署方式 302
1521 支持的網(wǎng)絡(luò)協(xié)議形式 302
1522 發(fā)布的復(fù)雜度 302
153 Django工程部署工作內(nèi)容 303
154 部署示例 303
155 小結(jié) 308