Django 3項(xiàng)目實(shí)例精解
-
>
決戰(zhàn)行測(cè)5000題(言語(yǔ)理解與表達(dá))
-
>
軟件性能測(cè)試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
深度學(xué)習(xí)
-
>
Unreal Engine 4藍(lán)圖完全學(xué)習(xí)教程
-
>
深入理解計(jì)算機(jī)系統(tǒng)-原書(shū)第3版
-
>
Word/Excel PPT 2013辦公應(yīng)用從入門(mén)到精通-(附贈(zèng)1DVD.含語(yǔ)音視頻教學(xué)+辦公模板+PDF電子書(shū))
Django 3項(xiàng)目實(shí)例精解 版權(quán)信息
- ISBN:9787302581840
- 條形碼:9787302581840 ; 978-7-302-58184-0
- 裝幀:一般膠版紙
- 冊(cè)數(shù):暫無(wú)
- 重量:暫無(wú)
- 所屬分類(lèi):>>
Django 3項(xiàng)目實(shí)例精解 本書(shū)特色
Django是一個(gè)功能強(qiáng)大的Python Web框架,支持快速開(kāi)發(fā)過(guò)程及簡(jiǎn)潔、實(shí)用的設(shè)計(jì)方案。無(wú)論是對(duì)于初學(xué)者還是專(zhuān)家級(jí)程序員,這一特點(diǎn)頗具吸引力。 《Django 3項(xiàng)目實(shí)例精解》將引領(lǐng)讀者學(xué)習(xí)專(zhuān)業(yè)Web應(yīng)用程序的開(kāi)發(fā)流程。除框架知識(shí)外,《Django 3項(xiàng)目實(shí)例精解》還將講解如何將其他較為流行的技術(shù)整合至Django項(xiàng)目中。 《Django 3項(xiàng)目實(shí)例精解》將討論真實(shí)應(yīng)用程序的構(gòu)建過(guò)程、常見(jiàn)問(wèn)題的處理,并逐步實(shí)現(xiàn)多種*佳實(shí)踐 方案。 在閱讀完《Django 3項(xiàng)目實(shí)例精解》后,讀者將能夠理解Django的工作方式,以及如何打造具有實(shí)用性的高級(jí)Web應(yīng)用程序。
Django 3項(xiàng)目實(shí)例精解 內(nèi)容簡(jiǎn)介
《Django 3項(xiàng)目實(shí)例精解》詳細(xì)闡述了與Django 3.0開(kāi)發(fā)相關(guān)的基本解決方案,主要包括構(gòu)建博客應(yīng)用程序、利用不錯(cuò)特性完善博客程序、擴(kuò)展博客應(yīng)用程序、構(gòu)建社交型網(wǎng)站、共享網(wǎng)站中的內(nèi)容、跟蹤用戶(hù)活動(dòng)、構(gòu)建在線(xiàn)商店、管理支付操作和訂單、擴(kuò)展在線(xiàn)商店應(yīng)用程序、打造網(wǎng)絡(luò)教學(xué)平臺(tái)、渲染和緩存內(nèi)容、構(gòu)建API、搭建聊天服務(wù)器、部署項(xiàng)目等內(nèi)容。此外,本書(shū)還提供了相應(yīng)的示例、代碼,以幫助讀者進(jìn)一步理解相關(guān)方案的實(shí)現(xiàn)過(guò)程。 本書(shū)適合作為高等院校計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)的教材和教學(xué)參考書(shū),也可作為相關(guān)開(kāi)發(fā)人員的自學(xué)用書(shū)和參考手冊(cè)。
Django 3項(xiàng)目實(shí)例精解 目錄
第1章 構(gòu)建博客應(yīng)用程序 1
1.1 安裝Django 1
1.1.1 創(chuàng)建隔離的Python環(huán)境 2
1.1.2 利用pip安裝Django 3
1.2 創(chuàng)建**個(gè)項(xiàng)目 3
1.2.1 運(yùn)行開(kāi)發(fā)服務(wù)器 5
1.2.2 項(xiàng)目設(shè)置 7
1.2.3 項(xiàng)目和應(yīng)用程序 8
1.2.4 創(chuàng)建應(yīng)用程序 8
1.3 設(shè)計(jì)博客數(shù)據(jù)方案 9
1.3.1 激活應(yīng)用程序 11
1.3.2 設(shè)置并使用遷移方案 11
1.4 針對(duì)模型創(chuàng)建管理站點(diǎn) 13
1.4.1 創(chuàng)建超級(jí)用戶(hù) 13
1.4.2 Django管理站點(diǎn) 14
1.4.3 向管理站點(diǎn)中添加模型 15
1.4.4 定制模型的顯示方式 17
1.5 與QuerySet和管理器協(xié)同工作 18
1.5.1 創(chuàng)建對(duì)象 19
1.5.2 更新對(duì)象 20
1.5.3 檢索對(duì)象 20
1.5.4 刪除對(duì)象 22
1.5.5 評(píng)估QuerySet 22
1.5.6 創(chuàng)建模型管理器 22
1.6 構(gòu)建列表和詳細(xì)視圖 23
1.6.1 生成列表和視圖 24
1.6.2 向視圖添加URL路徑 25
1.6.3 模型的標(biāo)準(zhǔn)URL 26
1.7 創(chuàng)建視圖模板 27
1.8 添加分頁(yè)機(jī)制 30
1.9 使用基于類(lèi)的視圖 33
1.10 本章小結(jié) 34
第2章 利用高級(jí)特性完善博客程序 35
2.1 通過(guò)電子郵件共享帖子 35
2.1.1 使用Django創(chuàng)建表單 36
2.1.2 處理視圖中的表單 37
2.1.3 利用Django發(fā)送郵件 38
2.1.4 渲染模板中的表單 41
2.2 構(gòu)建評(píng)論系統(tǒng) 44
2.2.1 構(gòu)建模型 44
2.2.2 創(chuàng)建模型中的表單 46
2.2.3 處理視圖中的ModelForms 47
2.2.4 向帖子詳細(xì)模板中添加評(píng)論 49
2.3 添加標(biāo)簽功能 52
2.4 根據(jù)相似性檢索帖子 58
2.5 本章小結(jié) 60
第3章 擴(kuò)展博客應(yīng)用程序 61
3.1 創(chuàng)建自定義模板標(biāo)簽和過(guò)濾器 61
3.1.1 自定義模板標(biāo)簽 61
3.1.2 自定義模板過(guò)濾器 66
3.2 向站點(diǎn)添加網(wǎng)站地圖 69
3.3 創(chuàng)建帖子提要 72
3.4 向博客中添加全文本搜索功能 74
3.4.1 安裝PostgreSQL 75
3.4.2 簡(jiǎn)單的查詢(xún)操作 76
3.4.3 多字段搜索 76
3.4.4 構(gòu)建搜索視圖 77
3.4.5 詞干提取和排名 79
3.4.6 加權(quán)查詢(xún) 81
3.4.7 利用三元相似性進(jìn)行搜索 81
3.4.8 其他全文本搜索引擎 82
3.5 本章小結(jié) 82
第4章 構(gòu)建社交型網(wǎng)站 83
4.1 創(chuàng)建社交型網(wǎng)站 83
4.2 使用Django驗(yàn)證框架 84
4.2.1 構(gòu)建登錄視圖 85
4.2.2 使用Django驗(yàn)證視圖 90
4.2.3 登錄和注銷(xiāo)視圖 91
4.2.4 修改密碼視圖 96
4.2.5 重置密碼視圖 98
4.3 用戶(hù)注冊(cè)和用戶(hù)配置 104
4.3.1 用戶(hù)注冊(cè) 104
4.3.2 擴(kuò)展用戶(hù)模型 107
4.3.3 使用自定義用戶(hù)模型 113
4.3.4 使用消息框架 113
4.4 構(gòu)建自定義驗(yàn)證后端 116
4.5 向站點(diǎn)中添加社交網(wǎng)站驗(yàn)證 118
4.5.1 通過(guò)HTTPS運(yùn)行開(kāi)發(fā)服務(wù)器 119
4.5.2 基于Facebook的驗(yàn)證 121
4.5.3 基于Twitter的驗(yàn)證 126
4.5.4 基于Google的驗(yàn)證 128
4.6 本章小結(jié) 134
第5章 共享網(wǎng)站中的內(nèi)容 135
5.1 構(gòu)建圖像書(shū)簽網(wǎng)站 135
5.1.1 構(gòu)建圖像模型 136
5.1.2 生成多對(duì)多關(guān)系 137
5.1.3 在管理站點(diǎn)中注冊(cè)圖像模型 138
5.2 發(fā)布其他站點(diǎn)中的內(nèi)容 139
5.2.1 清空表單字段 139
5.2.2 覆寫(xiě)ModelForm的save()方法 140
5.2.3 利用jQuery構(gòu)建書(shū)簽工具 145
5.3 創(chuàng)建圖像的細(xì)節(jié)視圖 152
5.4 利用easy-thumbnails生成圖像縮略圖 155
5.5 利用jQuery添加AJAX操作 156
5.5.1 加載jQuery 157
5.5.2 AJAX請(qǐng)求中的跨站點(diǎn)請(qǐng)求偽造 158
5.5.3 利用jQuery執(zhí)行AJAX請(qǐng)求 159
5.6 針對(duì)視圖創(chuàng)建自定義裝飾器 163
5.7 向列表視圖中添加AJAX分頁(yè)機(jī)制 164
5.8 本章小結(jié) 169
第6章 跟蹤用戶(hù)活動(dòng) 171
6.1 構(gòu)建關(guān)注系統(tǒng) 171
6.1.1 利用中間模型創(chuàng)建多對(duì)多關(guān)系 171
6.1.2 針對(duì)用戶(hù)配置創(chuàng)建列表和詳細(xì)視圖 174
6.1.3 構(gòu)建AJAX視圖以關(guān)注用戶(hù) 179
6.2 構(gòu)建通用活動(dòng)流應(yīng)用程序 181
6.2.1 使用contenttypes框架 182
6.2.2 向模型中添加通用關(guān)系 183
6.2.3 避免活動(dòng)流中的重復(fù)內(nèi)容 186
6.2.4 向活動(dòng)流中添加用戶(hù)活動(dòng) 187
6.2.5 顯示活動(dòng)流 188
6.2.6 優(yōu)化涉及關(guān)系對(duì)象的QuerySet 188
6.2.7 針對(duì)操作活動(dòng)創(chuàng)建模板 189
6.3 利用信號(hào)實(shí)現(xiàn)反規(guī)范化計(jì)數(shù) 192
6.3.1 與信號(hào)協(xié)同工作 192
6.3.2 應(yīng)用程序配置類(lèi) 194
6.4 利用Redis存儲(chǔ)數(shù)據(jù)項(xiàng)視圖 196
6.4.1 安裝Redis 196
6.4.2 結(jié)合Python使用Redis 198
6.4.3 將數(shù)據(jù)視圖存儲(chǔ)于Redis中 199
6.4.4 將排名結(jié)果存儲(chǔ)于數(shù)據(jù)庫(kù)中 200
6.4.5 Redis特性 203
6.5 本章小結(jié) 203
第7章 構(gòu)建在線(xiàn)商店 205
7.1 創(chuàng)建在線(xiàn)商店項(xiàng)目 205
7.1.1 創(chuàng)建商品目錄模型 206
7.1.2 注冊(cè)管理站點(diǎn)上的目錄模型 208
7.1.3 構(gòu)建目錄視圖 210
7.1.4 創(chuàng)建目錄模板 212
7.2 創(chuàng)建購(gòu)物車(chē) 216
7.2.1 使用Django會(huì)話(huà) 217
7.2.2 會(huì)話(huà)設(shè)置 217
7.2.3 會(huì)話(huà)過(guò)期 218
7.2.4 將購(gòu)物車(chē)存儲(chǔ)于會(huì)話(huà)中 219
7.2.5 創(chuàng)建購(gòu)物車(chē)視圖 223
7.2.6 針對(duì)購(gòu)物車(chē)創(chuàng)建上下文處理器 230
7.3 注冊(cè)客戶(hù)訂單 232
7.3.1 創(chuàng)建訂單模型 232
7.3.2 在管理站點(diǎn)中包含訂單模型 234
7.3.3 創(chuàng)建客戶(hù)訂單 235
7.4 利用Celery啟動(dòng)異步任務(wù) 240
7.4.1 安裝Celery 240
7.4.2 安裝RabbitMQ 240
7.4.3 向項(xiàng)目中添加Celery 241
7.4.4 向應(yīng)用程序中添加異步任務(wù) 242
7.4.5 監(jiān)視Celery 244
7.5 本章小結(jié) 244
第8章 管理支付操作和訂單 245
8.1 整合支付網(wǎng)關(guān) 245
8.1.1 創(chuàng)建Braintree沙箱賬號(hào) 245
8.1.2 安裝Braintree Python模塊 247
8.1.3 集成支付網(wǎng)關(guān) 247
8.1.4 使用托管字段集成Braintree 249
8.1.5 支付的測(cè)試操作 255
8.1.6 上線(xiàn) 257
8.2 將訂單導(dǎo)出為CSV文件 257
8.3 利用自定義視圖擴(kuò)展管理站點(diǎn) 260
8.4 動(dòng)態(tài)生成PDF發(fā)票 265
8.4.1 安裝WeasyPrint 265
8.4.2 創(chuàng)建PDF模板 265
8.4.3 顯示PDF文件 267
8.4.4 通過(guò)電子郵件發(fā)送PDF文件 270
8.5 本章小結(jié) 273
第9章 擴(kuò)展在線(xiàn)商店應(yīng)用程序 275
9.1 創(chuàng)建優(yōu)惠券系統(tǒng) 275
9.1.1 構(gòu)建優(yōu)惠券模型 276
9.1.2 在購(gòu)物車(chē)中使用優(yōu)惠券 278
9.1.3 在訂單中使用優(yōu)惠券 284
9.2 添加國(guó)際化和本地化機(jī)制 286
9.2.1 Django的國(guó)際化處理 286
9.2.2 項(xiàng)目的國(guó)際化 288
9.2.3 翻譯Python代碼 290
9.2.4 翻譯模板 295
9.2.5 使用Rosetta翻譯接口 299
9.2.6 模糊翻譯 302
9.2.7 國(guó)際化的URL路徑 302
9.2.8 切換語(yǔ)言 304
9.2.9 利用django-parler翻譯模塊 306
9.2.10 本地化格式 314
9.2.11 使用django-localflavor驗(yàn)證表單字段 315
9.3 構(gòu)建推薦引擎 316
9.4 本章小結(jié) 324
第10章 打造網(wǎng)絡(luò)教學(xué)平臺(tái) 325
10.1 設(shè)置網(wǎng)絡(luò)教學(xué)項(xiàng)目 325
10.2 構(gòu)建課程模型 326
10.2.1 在管理站點(diǎn)中注冊(cè)模型 328
10.2.2 使用固定文件提供模型的初始數(shù)據(jù) 329
10.3 創(chuàng)建包含多樣化內(nèi)容的模型 332
10.3.1 使用模型繼承機(jī)制 332
10.3.2 創(chuàng)建內(nèi)容模型 334
10.3.3 創(chuàng)建自定義模型字段 337
10.3.4 向模塊和內(nèi)容對(duì)象中添加順序機(jī)制 338
10.4 創(chuàng)建CMS 343
10.4.1 添加認(rèn)證系統(tǒng) 343
10.4.2 創(chuàng)建認(rèn)證模板 343
10.4.3 設(shè)置基于類(lèi)的視圖 346
10.4.4 針對(duì)基于類(lèi)的視圖使用混合類(lèi) 347
10.4.5 分組和權(quán)限 349
10.4.6 限制訪問(wèn)基于類(lèi)的視圖 351
10.5 管理課程模塊和內(nèi)容 356
10.5.1 針對(duì)課程模塊使用表單集 357
10.5.2 向課程模塊中添加內(nèi)容 361
10.5.3 管理模塊和內(nèi)容 366
10.5.4 對(duì)模塊和內(nèi)容重排序 370
10.6 本章小結(jié) 374
第11章 渲染和緩存內(nèi)容 375
11.1 顯示課程 375
11.2 添加學(xué)生注冊(cè)機(jī)制 380
11.2.1 創(chuàng)建學(xué)生注冊(cè)視圖 381
11.2.2 注冊(cè)課程 383
11.3 訪問(wèn)課程內(nèi)容 387
11.4 渲染不同內(nèi)容的類(lèi)型 390
11.5 使用緩存框架 393
11.5.1 有效的緩存后端 394
11.5.2 安裝Memcached 394
11.5.3 緩存設(shè)置 395
11.5.4 向項(xiàng)目中添加Memcached 395
11.5.5 監(jiān)控Memcached 396
11.5.6 緩存級(jí)別 397
11.5.7 使用底層緩存API 397
11.5.8 緩存動(dòng)態(tài)數(shù)據(jù) 399
11.5.9 緩存模板片段 400
11.5.10 緩存視圖 402
11.5.11 使用每個(gè)站點(diǎn)緩存 402
11.6 本章小結(jié) 403
第12章 構(gòu)建API 405
12.1 構(gòu)建RESTful API 405
12.1.1 安裝Django REST框架 406
12.1.2 定義序列化器 407
12.1.3 理解解析器和渲染器 408
12.1.4 構(gòu)建列表和詳細(xì)視圖 409
12.1.5 創(chuàng)建嵌套序列化器 412
12.1.6 構(gòu)建自定義視圖 413
12.1.7 處理身份驗(yàn)證 414
12.1.8 向視圖中添加權(quán)限 415
12.1.9 創(chuàng)建視圖集和路由器 417
12.1.10 向視圖集添加附加操作 418
12.1.11 創(chuàng)建自定義權(quán)限 419
12.1.12 序列化課程內(nèi)容 420
12.1.13 使用RESTful API 422
12.2 本章小結(jié) 425
第13章 搭建聊天服務(wù)器 427
13.1 創(chuàng)建聊天應(yīng)用程序 427
13.1.1 實(shí)現(xiàn)聊天室視圖 428
13.1.2 禁用站點(diǎn)緩存 430
13.2 基于Channels的實(shí)時(shí)Django 431
13.2.1 基于ASGI的異步應(yīng)用程序 431
13.2.2 基于Channels的請(qǐng)求/響應(yīng)周期 431
13.3 安裝Channels 433
13.4 編寫(xiě)使用者 435
13.5 路由機(jī)制 436
13.6 實(shí)現(xiàn)WebSocket客戶(hù)端 437
13.7 啟用通道層 442
13.7.1 通道和分組 443
13.7.2 利用Redis設(shè)置通道層 443
13.7.3 更新使用者以廣播消息 444
13.7.4 將上下文添加至消息中 448
13.8 調(diào)整使用者使其處于完全異步狀態(tài) 451
13.9 集成聊天應(yīng)用程序和視圖 453
13.10 本章小結(jié) 454
第14章 部署項(xiàng)目 455
14.1 創(chuàng)建產(chǎn)品環(huán)境 455
14.1.1 針對(duì)多種環(huán)境管理設(shè)置內(nèi)容 455
14.1.2 使用PostgreSQL 458
14.1.3 項(xiàng)目檢查 458
14.1.4 通過(guò)WSGI為Django提供服務(wù) 459
14.1.5 安裝uWSGI 459
14.1.6 配置uWSGI 459
14.1.7 安裝NGINX 462
14.1.8 產(chǎn)品環(huán)境 463
14.1.9 配置NGINX 463
14.1.10 向靜態(tài)和媒體數(shù)據(jù)集提供服務(wù) 465
14.1.11 基于SSL/TLS的安全連接 467
14.1.12 針對(duì)Django Channels使用Daphne 472
14.1.13 使用安全的WebSocket連接 473
14.1.14 將Daphne包含于NGINX配置中 473
14.2 創(chuàng)建自定義中間件 476
14.2.1 創(chuàng)建子域名中間件 477
14.2.2 利用NGINX向多個(gè)子域名提供服務(wù) 479
14.3 實(shí)現(xiàn)自定義管理命令 479
14.4 本章小結(jié) 482
Django 3項(xiàng)目實(shí)例精解 節(jié)選
第4章 構(gòu)建社交型網(wǎng)站 第3章介紹了如何創(chuàng)建網(wǎng)站地圖和摘要,并對(duì)blog應(yīng)用程序構(gòu)建搜索引擎。本章將開(kāi)發(fā)一個(gè)社交應(yīng)用程序,這意味著,用戶(hù)可加入在線(xiàn)平臺(tái),并通過(guò)共享內(nèi)容彼此交互。后續(xù)章節(jié)將重點(diǎn)討論如何構(gòu)建圖像共享平臺(tái)。用戶(hù)將能夠?qū)ヂ?lián)網(wǎng)上的圖像添加書(shū)簽,且彼此間共享內(nèi)容。除此之外,用戶(hù)還可查看所關(guān)注用戶(hù)在平臺(tái)上的活動(dòng),并對(duì)共享圖像點(diǎn)贊或取消點(diǎn)贊。 本章將介紹如何為用戶(hù)創(chuàng)建登錄、注銷(xiāo)、編輯以及密碼重置等功能。此外,本章還將學(xué)習(xí)如何設(shè)置用戶(hù)的自定義配置文件,并向網(wǎng)站中添加驗(yàn)證機(jī)制。 本章主要涉及以下內(nèi)容: q 使用Django授權(quán)框架。 q 創(chuàng)建用戶(hù)注冊(cè)視圖。 q 利用自定義配置模型擴(kuò)展用戶(hù)模型。 q 利用Python Social Auth添加授權(quán)機(jī)制。 下面將開(kāi)始構(gòu)建新項(xiàng)目。 4.1 創(chuàng)建社交型網(wǎng)站 本節(jié)將介紹如何創(chuàng)建社交型應(yīng)用程序,用戶(hù)可以此共享他們?cè)诨ヂ?lián)網(wǎng)中搜索的圖片。針對(duì)該項(xiàng)目,需要設(shè)置以下元素: q 用戶(hù)驗(yàn)證系統(tǒng),以實(shí)現(xiàn)注冊(cè)、登錄、配置文件的編輯以及密碼的修改和重置等操作。 q 關(guān)注系統(tǒng),以使站點(diǎn)中的用戶(hù)間可彼此查看。 q 顯示共享圖片,并實(shí)現(xiàn)用戶(hù)的標(biāo)簽工具,進(jìn)而共享來(lái)自任意網(wǎng)站的圖片。 q 每名用戶(hù)的操作流,可以使用戶(hù)查看所關(guān)注用戶(hù)的上傳內(nèi)容。 本章將對(duì)此進(jìn)行逐一討論。 打開(kāi)終端,使用下列命令創(chuàng)建項(xiàng)目虛擬環(huán)境并激活該項(xiàng)目: mkdir env python3 -m venv env/bookmarks source env/bookmarks/bin/activate Shell提示符將顯示處于活動(dòng)狀態(tài)下的虛擬環(huán)境,如下所示: (bookmarks)laptop:~ zenx$ 利用下列命令在虛擬環(huán)境下安裝Django: pip install "Django==3.0.*" 運(yùn)行下列命令并創(chuàng)建新項(xiàng)目: django-admin startproject bookmarks 在創(chuàng)建了初始項(xiàng)目結(jié)構(gòu)后,通過(guò)下列命令查看項(xiàng)目字典,并創(chuàng)建名為account的新應(yīng)用程序。 cd bookmarks/ django-admin startapp account 注意,這里應(yīng)激活項(xiàng)目中的新應(yīng)用程序,也就是說(shuō),將其添加至settings.py文件中的INSTALLED_APPS設(shè)置中,并在其他安裝后的應(yīng)用程序之前將其置于INSTALLED_ APPS列表中,如下所示: INSTALLED_APPS = [ 'account.apps.AccountConfig', # ... ] 后面將定義Django的驗(yàn)證模板。通過(guò)在INSTALLED_APPS設(shè)置中放置當(dāng)前應(yīng)用程序,可確保驗(yàn)證模板在默認(rèn)狀態(tài)下予以使用,而非其他應(yīng)用程序中的驗(yàn)證模板。Django根據(jù)應(yīng)用程序在INSTALLED_APPS設(shè)置中的出現(xiàn)順序查找模板。 運(yùn)行下列命令,將數(shù)據(jù)庫(kù)與INSTALLED_APPS設(shè)置中包含的默認(rèn)應(yīng)用程序模型同步: python manage.py migrate 隨后將會(huì)看到,全部初始狀態(tài)下的Django數(shù)據(jù)庫(kù)遷移均已投入使用。下面將通過(guò)Django的驗(yàn)證系統(tǒng)框架構(gòu)建項(xiàng)目的驗(yàn)證系統(tǒng)。 4.2 使用Django驗(yàn)證框架 Django包含了內(nèi)置的驗(yàn)證框架,并可處理用戶(hù)驗(yàn)證、會(huì)話(huà)、許可權(quán)限以及用戶(hù)組。驗(yàn)證系統(tǒng)包含了常見(jiàn)用戶(hù)行為的視圖,如登錄、注銷(xiāo)、密碼修改以及密碼重置。 驗(yàn)證框架位于django.contrib.auth中,其他Django contrib數(shù)據(jù)包也可對(duì)此加以使用。回憶一下,第1章中已經(jīng)使用了驗(yàn)證框架,并生成了blog應(yīng)用程序的超級(jí)用戶(hù)以訪問(wèn)管理站點(diǎn)。 當(dāng)使用startproject命令創(chuàng)建新的Django項(xiàng)目時(shí),驗(yàn)證框架包含在項(xiàng)目的默認(rèn)設(shè)置中,包括django.contrib.auth應(yīng)用程序,以及下列兩個(gè)項(xiàng)目MIDDLEWARE設(shè)置中的中間件類(lèi)。 q AuthenticationMiddleware:使用會(huì)話(huà)將用戶(hù)與請(qǐng)求關(guān)聯(lián)起來(lái)。 q SessionMiddleware:處理請(qǐng)求間的當(dāng)前會(huì)話(huà)。 中間件表示為一個(gè)類(lèi),其中包含了一些方法,可在請(qǐng)求或響應(yīng)階段以全局方式被執(zhí)行。我們將在多種場(chǎng)合下使用到中間件類(lèi)。此外,第14章還將學(xué)習(xí)如何創(chuàng)建自定義中間件。 驗(yàn)證框架涵蓋了下列模塊: q User表示包含基本字段的用戶(hù)模塊,該模塊的主要字段包括username、password、email、first_name、last_name以及is_active。 q Group表示分組模塊,以對(duì)用戶(hù)進(jìn)行分類(lèi)。 q Permission表示用戶(hù)或分組標(biāo)記,并執(zhí)行特定的操作。 除此之外,該框架還包含了默認(rèn)的驗(yàn)證視圖,以及供后續(xù)操作使用的表單。 4.2.1 構(gòu)建登錄視圖 本節(jié)將使用Django驗(yàn)證框架使得用戶(hù)可以登錄當(dāng)前網(wǎng)站。對(duì)應(yīng)的視圖將執(zhí)行下列操作,從而實(shí)現(xiàn)用戶(hù)登錄。 (1)通過(guò)發(fā)布表單獲得用戶(hù)名和密碼。 (2)利用存儲(chǔ)于數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)用戶(hù)進(jìn)行驗(yàn)證。 (3)檢查用戶(hù)是否屬于活動(dòng)狀態(tài)。 (4)用戶(hù)登錄網(wǎng)站并啟動(dòng)驗(yàn)證會(huì)話(huà)。 下面首先創(chuàng)建登錄表單。在account應(yīng)用程序目錄中創(chuàng)建新的forms.py文件,并添加下列代碼行: from django import forms class LoginForm(forms.Form): username = forms.CharField() password = forms.CharField(widget=forms.PasswordInput)
- >
【精裝繪本】畫(huà)給孩子的中國(guó)神話(huà)
- >
李白與唐代文化
- >
中國(guó)歷史的瞬間
- >
煙與鏡
- >
羅庸西南聯(lián)大授課錄
- >
人文閱讀與收藏·良友文學(xué)叢書(shū):一天的工作
- >
詩(shī)經(jīng)-先民的歌唱
- >
伯納黛特,你要去哪(2021新版)