書(shū)馨卡幫你省薪 2024個(gè)人購(gòu)書(shū)報(bào)告 2024中圖網(wǎng)年度報(bào)告
歡迎光臨中圖網(wǎng) 請(qǐng) | 注冊(cè)

Django 3項(xiàng)目實(shí)例精解

出版社:清華大學(xué)出版社出版時(shí)間:2021-06-01
開(kāi)本: 其他 頁(yè)數(shù): 482
中 圖 價(jià):¥105.8(7.1折) 定價(jià)  ¥149.0 登錄后可看到會(huì)員價(jià)
加入購(gòu)物車(chē) 收藏
運(yùn)費(fèi)6元,滿(mǎn)39元免運(yùn)費(fèi)
?新疆、西藏除外
本類(lèi)五星書(shū)更多>

Django 3項(xiàng)目實(shí)例精解 版權(quán)信息

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



展開(kāi)全部

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)

暫無(wú)評(píng)論……
書(shū)友推薦
本類(lèi)暢銷(xiāo)
返回頂部
中圖網(wǎng)
在線(xiàn)客服