Python Web企業(yè)級項(xiàng)目開發(fā)教程(Django版)
定 價:56 元
叢書名:“十三五”應(yīng)用技術(shù)型人才培養(yǎng)規(guī)劃教材
- 作者:黑馬程序員 著
- 出版時間:2020/6/1
- ISBN:9787113267261
- 出 版 社:中國鐵道出版社
- 中圖法分類:TP311.561
- 頁碼:336
- 紙張:膠版紙
- 版次:1
- 開本:16開
Python 是當(dāng)今比較流行的編程語言之一,Web 開發(fā)領(lǐng)域自然無法缺少Python 的身影。 Python Web 發(fā)展過程中誕生了數(shù)十種框架,其中 Django 框架因簡潔、優(yōu)秀且實(shí)用的結(jié)構(gòu)和良 好的開發(fā)效率,受到了廣大 Web 開發(fā)工程師的喜愛。
本書在 Windows 上基于 Python 3.x 與 Django 2.x 對 Django 框架相關(guān)知識進(jìn)行講解,并以 此為基礎(chǔ)利用Django 框架實(shí)現(xiàn)了一個完整的電商平臺。本書分為14 章,其中前8 章介紹了 Django 的基礎(chǔ)知識,包括 Django 概述、路由系統(tǒng)、模型、模板、視圖、后臺管理系統(tǒng)、表單、 身份驗(yàn)證系統(tǒng) ;第 9~14 章從需求與前期準(zhǔn)備著手,逐步實(shí)現(xiàn)了完整的 Django Web 項(xiàng)目。
本書附有配套視頻、源代碼、習(xí)題、教學(xué)課件等資源。為幫助初學(xué)者更好地學(xué)習(xí)本書中 的內(nèi)容,還提供了在線答疑,希望得到更多讀者的關(guān)注。
本書適合作為高等院校計(jì)算機(jī)相關(guān)專業(yè) Django 框架課程或 Python 進(jìn)階課程的專用教材, 也可作為供自學(xué)者使用的輔助教材,適合具有 Python 語言基礎(chǔ)的讀者參考使用。
本書在 Windows 上基于 Python 3.x 與 Django 2.x 對 Django 框架相關(guān)知識進(jìn)行講解,并以 此為基礎(chǔ)利用Django 框架實(shí)現(xiàn)了一個完整的電商平臺。
21世紀(jì)是信息時代,各種各樣的信息充斥著人們的生活,為了更好地呈現(xiàn)這些信 息,很多公司搭建了自己的內(nèi)容網(wǎng)站。Python是當(dāng)今最流行的編程語言之一,Web開發(fā)領(lǐng) 域自然無法缺少Python的身影。Python Web發(fā)展過程中誕生了許多框架,其中Django框架 因簡潔、優(yōu)秀且實(shí)用的結(jié)構(gòu)和良好的開發(fā)效率,受到了廣大Web開發(fā)工程師的喜愛。
為什么要學(xué)習(xí)本書
框架的學(xué)習(xí)并不難,帶領(lǐng)讀者領(lǐng)悟框架的設(shè)計(jì)思想,在其指引下掌握基于框架的項(xiàng) 目開發(fā),是本書的初衷。本書可幫助具有Python基礎(chǔ)的人快速了解、熟悉Django框架,熟 練基于Django開發(fā)Web程序。
在章節(jié)設(shè)置上,本書采用“理論知識+要點(diǎn)分析+代碼示例+實(shí)例練習(xí)”的模式,既 有普適性介紹,又抓取要點(diǎn)、突出重點(diǎn),同時提供充足實(shí)例,保證讀者在熟悉框架原理 與基礎(chǔ)的前提下,能夠掌握相關(guān)知識,并運(yùn)用到實(shí)際之中;在知識配置上,本書涵蓋 Django的路由系統(tǒng)、模型、模板、視圖、后臺管理系統(tǒng)、表單和身份驗(yàn)證系統(tǒng),同時配 置完整Web實(shí)戰(zhàn)項(xiàng)目。通過學(xué)習(xí)本書,讀者可全面掌握Django框架的設(shè)計(jì)模式與相關(guān)知 識,具備使用Django框架快速開發(fā)Web項(xiàng)目的能力。
如何使用本書
本書在Windows上基于Python 3.x與Django 2.x對Django框架相關(guān)知識進(jìn)行講解。全書 分為14個章節(jié),各章內(nèi)容分別如下:
第1章簡單介紹了Django框架,包括Django的發(fā)展史、優(yōu)點(diǎn)、安裝,創(chuàng)建Django項(xiàng)目 與應(yīng)用、Django的目錄結(jié)構(gòu)、配置文件,Django架構(gòu),以及Django的開發(fā)理念。通過本章 的學(xué)習(xí),讀者能夠?qū)jango框架有所了解,掌握如何搭建虛擬環(huán)境,熟悉Django目錄結(jié) 構(gòu),可熟練創(chuàng)建Django項(xiàng)目與應(yīng)用。
第2章主要介紹了Django框架中的路由系統(tǒng),包括處理HTTP的請求、路由轉(zhuǎn)換器、 利用正則表達(dá)式配置URL、通過include()函數(shù)實(shí)現(xiàn)路由分發(fā)、向視圖傳遞額外參數(shù)、URL 命名與命名空間,以及反向解析URL。通過本章的學(xué)習(xí),讀者能夠熟練使用Django框架 中的路由系統(tǒng)。
第3章介紹了與Django模型相關(guān)的知識,包括模型的定義、字段的使用、模型的元 屬性、Manager管理器、數(shù)據(jù)的增刪改查,以及QuerySet的使用。通過本章的學(xué)習(xí),讀者能夠?qū)jango中的模型有所了解,掌握如何定義模型,熟練利用模型操作數(shù)據(jù)庫中的 數(shù)據(jù)。
第4章介紹了與Django模板相關(guān)的知識,包括Django內(nèi)置模板引擎與第三方模板引擎 Jinja2、Django模板的查找順序、模板語言,以及模板的繼承機(jī)制。通過本章的學(xué)習(xí),讀 者能夠熟悉Django模板語法,掌握如何配置模板引擎,了解模板的查找順序,可熟練使 用模板。
第5章介紹了與Django中的視圖相關(guān)的知識,包括函數(shù)視圖、請求對象和響應(yīng)對象、 模板響應(yīng)對象、生成響應(yīng)的快捷方式、類視圖,以及基于類的通用視圖。通過本章的學(xué) 習(xí),讀者能夠熟悉Django中視圖的功能、結(jié)構(gòu),掌握請求對象和響應(yīng)對象,熟練定義和 使用視圖。
第6章介紹了與Admin后臺管理系統(tǒng)相關(guān)的知識,包括進(jìn)入后臺、使用后臺管理系 統(tǒng),通過ModelAdmin選項(xiàng)控制頁面顯示內(nèi)容、認(rèn)證和授權(quán),以及重寫Django后臺模板。 通過本章的學(xué)習(xí),讀者能夠掌握并熟練運(yùn)行Admin。
第7章介紹了在后端定義表單、利用Django模型類定義表單,以及表單集。通過本章 的學(xué)習(xí),讀者能夠了解如何通過代碼定義表單類、如何在視圖中實(shí)例化表單類,以及在 模板中使用表單實(shí)例。
第8章介紹了身份驗(yàn)證系統(tǒng)的相關(guān)知識,包括User對象、權(quán)限管理、Web請求認(rèn)證、 模板與身份驗(yàn)證、自定義用戶模型、狀態(tài)保持。通過本章的學(xué)習(xí),讀者能夠掌握Django 身份驗(yàn)證系統(tǒng)的基本使用,為后續(xù)項(xiàng)目開發(fā)作鋪墊。
第9章通過示例網(wǎng)站分析了電商平臺小魚商城的需求,歸納了其核心模塊,介紹了其 開發(fā)模式和運(yùn)行機(jī)制,并準(zhǔn)備了開發(fā)項(xiàng)目所需的環(huán)境。通過本章的學(xué)習(xí),讀者能夠明確 小魚商城項(xiàng)目的需求和模塊,了解項(xiàng)目架構(gòu),能夠熟練準(zhǔn)備項(xiàng)目環(huán)境。
第10章主要實(shí)現(xiàn)了小魚商城用戶注冊、用戶登錄與用戶中心功能。通過本章的學(xué) 習(xí),讀者能夠掌握用戶相關(guān)模塊的功能劃分與內(nèi)部邏輯,熟練實(shí)現(xiàn)相關(guān)功能。
第11章主要實(shí)現(xiàn)了小魚商城的商品模塊和廣告模塊,包括商品、廣告的數(shù)據(jù)庫設(shè) 計(jì)、數(shù)據(jù)的準(zhǔn)備、首頁數(shù)據(jù)的呈現(xiàn)、商品列表、商品搜索、商品詳情,并實(shí)現(xiàn)了用戶的 瀏覽記錄。通過本章的學(xué)習(xí),讀者能夠深入理解Django架構(gòu),熟悉Django的使用,掌握 pagination分頁工具,熟練使用whoosh引擎。
第12章首先介紹了購物車的兩種存儲方案,然后分別介紹了購物車常用的功能, 包括添加商品、展示購物車、修改購物車商品、刪除商品、全選與合并購物車功能,以 及展示購物車的縮略信息。通過本章的學(xué)習(xí),讀者能夠理解購物車中常用功能的實(shí)現(xiàn) 邏輯。
第13章實(shí)現(xiàn)了小魚商城訂單的結(jié)算和提交,并介紹了與訂單數(shù)據(jù)修改相關(guān)的事務(wù)處 理。通過本章的學(xué)習(xí),讀者能夠熟悉電商網(wǎng)站訂單模塊的功能與邏輯,掌握Django事務(wù) 處理方式與樂觀鎖的使用。
第14章首先對支付寶平臺進(jìn)行了簡單介紹,然后講解了如何在項(xiàng)目中對接支付寶,最后介紹了商品評價的實(shí)現(xiàn)以及評價的展示。通過本章的學(xué)習(xí),讀者能夠掌握如何對接 支付寶,了解商品評價的業(yè)務(wù)邏輯。
讀者若不能完全理解本書中所講知識,可登錄在線平臺,配合平臺中的教學(xué)視頻進(jìn) 行學(xué)習(xí)。此外,讀者在學(xué)習(xí)的過程中,務(wù)必要勤于練習(xí),確保真正掌握所學(xué)知識。若在 學(xué)習(xí)的過程中遇到無法解決的困難,建議讀者莫要糾結(jié)于此,繼續(xù)往后學(xué)習(xí),或可豁然 開朗。
致謝
本書的編寫和整理工作由傳智播客教育科技股份有限公司完成,主要參與人員有高 美云、孫東、鄭瑤瑤等,全體人員在這近一年的編寫過程中付出了很多辛勤的汗水,在 此一并表示衷心的感謝。
意見反饋
盡管我們付出了最大的努力,但書中難免會有疏漏和不妥之處,歡迎各界專家和讀 者朋友來信提出寶貴意見,我們將不勝感激。您在閱讀本書時,如發(fā)現(xiàn)任何問題或有不 認(rèn)同之處,可以通過電子郵件與我們?nèi)〉寐?lián)系。
請發(fā)送電子郵件至:itcast_book@vip.sina.com。
黑馬程序員
2020年3月2日于北京
黑馬程序員,江蘇傳智播客教育科技股份有限公司(簡稱傳智播客)是一家致力于培養(yǎng)高素質(zhì)軟件開發(fā)人才的科技公司,黑馬程序員是傳智播客旗下高端IT教育品牌。
第 1 章 Django概述 .1
1.1 認(rèn)識Django .1
1.1.1 Django發(fā)展史1
1.1.2 Django框架的優(yōu)點(diǎn)2
1.2 安裝Django .2
1.2.1 Django版本選擇2
1.2.2 創(chuàng)建隔離的Python環(huán)境 3
1.2.3 使用pip安裝Django 4
1.3 創(chuàng)建第一個Django項(xiàng)目 .5
1.3.1 新建Django項(xiàng)目5
1.3.2 項(xiàng)目結(jié)構(gòu)說明 .5
1.3.3 運(yùn)行開發(fā)服務(wù)器 .6
1.3.4 Django項(xiàng)目配置7
1.3.5 在項(xiàng)目中創(chuàng)建應(yīng)用 .9
1.4 Django架構(gòu)之MTV 11
1.5 Django的開發(fā)理念 .11
小結(jié) .13
習(xí)題 .13
第 2 章 路由系統(tǒng) .15
2.1 認(rèn)識路由系統(tǒng) 15
2.1.1 HTTP請求處理流程概述 .15
2.1.2 URL配置示例 .16
2.2 路由轉(zhuǎn)換器 17
2.2.1 內(nèi)置路由轉(zhuǎn)換器 .17
2.2.2 自定義路由轉(zhuǎn)換器 .18
2.3 使用正則表達(dá)式匹配URL .19
2.4 路由分發(fā) 20
2.5 向視圖傳遞額外參數(shù) 21
2.6 URL命名與命名空間 22
2.6.1 URL命名 .22
2.6.2 使用reverse()反向解析URL .22
2.6.3 應(yīng)用命名空間 .23
2.6.4 實(shí)例命名空間 .24
小結(jié) .25
習(xí)題 .25
第 3 章 模型 .27
3.1 定義與使用模型 27
3.2 模型的字段 29
3.2.1 字段類型 .29
3.2.2 關(guān)系字段 .30
3.2.3 字段的通用參數(shù) .32
3.3 模型的元屬性 32
3.4 Manager管理器 33
3.4.1 管理器名稱 .33
3.4.2 自定義管理器 .33
3.5 數(shù)據(jù)的增刪改查 34
3.6 QuerySet的使用 .36
3.6.1 多表查詢 .36
3.6.2 F對象與Q對象 38
3.6.3 QuerySet的特性 38
3.7 執(zhí)行原始SQL語句 .39
小結(jié) .40
習(xí)題 .40
第 4 章 模板 .42
4.1 模板與模板引擎 42
4.2 模板查找順序 43
4.3 模板語言 44
4.3.1 變量 .45
4.3.2 過濾器 .45
4.3.3 標(biāo)簽 .48
4.3.4 自定義過濾器和標(biāo)簽 .52
4.4 模板繼承 55
4.5 Jinja2 .57
小結(jié) .58
習(xí)題 .58
第 5 章 視圖 .61
5.1 認(rèn)識視圖 61
5.2 請求對象 62
5.3 響應(yīng)對象 64
5.3.1 HttpResponse類 .65
5.3.2 HttpResponse的子類 .66
5.4 實(shí)例1:商品管理 67
5.5 模板響應(yīng)對象 70
5.5.1 TemplateResponse .70
5.5.2 模板響應(yīng)對象的渲染 .71
5.6 生成響應(yīng)的快捷方式 73
5.7 類視圖 75
5.7.1 定義類視圖 .75
5.7.2 基礎(chǔ)視圖類 .75
5.7.3 配置類屬性 .77
5.8 實(shí)例2:基于類視圖的商品管理 78
5.9 通用視圖 82
5.9.1 通用視圖分類 .82
5.9.2 通用視圖與模型 .82
5.9.3 添加額外的上下文對象 .84
5.9.4 通過queryset控制頁面內(nèi)容 .84
5.9.5 重要屬性和方法 .85
小結(jié) .85
習(xí)題 .85
第 6 章 后臺管理系統(tǒng)——Admin .87
6.1 認(rèn)識Admin .87
6.1.1 進(jìn)入Admin 87
6.1.2 使用Admin .89
6.2 ModelAdmin選項(xiàng) .93
6.2.1 列表頁選項(xiàng) .93
6.2.2 編輯頁選項(xiàng) .99
6.3 認(rèn)證和授權(quán) 101
6.4 重寫Admin后臺模板 .106
小結(jié) .107
107
第 7 章 表單 .109
7.1 Django表單概述 .109
7.1.1 在Django中定義表單的方式 .109
7.1.2 Form類的常用字段 .110
7.1.3 字段的通用參數(shù) .111
7.1.4 實(shí)例化、處理和渲染表單 .112
7.1.5 表單實(shí)例的形式 .113
7.1.6 表單驗(yàn)證 .113
7.2 在模板中渲染表單 114
7.3 表單集 116
7.3.1 創(chuàng)建表單集 .116
7.3.2 管理表單集 .117
7.3.3 驗(yàn)證表單集 .118
7.3.4 使用表單集 .118
7.4 根據(jù)模型創(chuàng)建表單 119
7.4.1 自定義模型表單類 .119
7.4.2 模型表單類的字段 .120
7.4.3 使用模型表單類 .121
7.4.4 利用工廠函數(shù)定義模型表單類 .123
7.4.5 利用工廠函數(shù)定義表單集 .123
7.5 實(shí)例:基于表單類的商品管理 124
小結(jié) .127
習(xí)題 .127
第 8 章 身份驗(yàn)證系統(tǒng) 129
8.1 User對象 .129
8.2 權(quán)限與權(quán)限管理 131
8.2.1 默認(rèn)權(quán)限 .131
8.2.2 權(quán)限管理 .132
8.2.3 自定義權(quán)限 .133
8.3 Web請求認(rèn)證 .134
8.3.1 用戶登錄與退出 .134
8.3.2 限制用戶訪問 .135
8.4 模板與身份驗(yàn)證 136
8.4.1 驗(yàn)證用戶 .136
8.4.2 驗(yàn)證權(quán)限 .137
8.5 自定義用戶模型 138
8.6 狀態(tài)保持 138
8.6.1 Cookie 139
8.6.2 Session .141
小結(jié) .144
145
第 9 章 電商項(xiàng)目——前期準(zhǔn)備 146
9.1 項(xiàng)目需求 146
9.2 模塊歸納 156
9.3 項(xiàng)目開發(fā)模式與運(yùn)行機(jī)制 157
9.4 項(xiàng)目創(chuàng)建和配置 158
9.4.1 創(chuàng)建項(xiàng)目 .158
9.4.2 配置開發(fā)環(huán)境 .158
9.4.3 配置Jinja2模板 159
9.4.4 配置MySQL數(shù)據(jù)庫 161
9.4.5 配置Redis數(shù)據(jù)庫 162
9.4.6 配置項(xiàng)目日志 .162
9.4.7 配置前端靜態(tài)文件 .164
9.4.8 配置應(yīng)用目錄 .164
小結(jié) .166
習(xí)題 .166
第 10 章 電商項(xiàng)目——用戶管理與驗(yàn)證 167
10.1 定義用戶模型類 167
10.2 用戶注冊 168
10.2.1 用戶注冊邏輯分析 .168
10.2.2 用戶注冊后端基礎(chǔ)需求的實(shí)現(xiàn) .170
10.2.3 用戶名與手機(jī)號唯一性校驗(yàn) .173
10.2.4 驗(yàn)證碼 .176
10.3 用戶登錄 190
10.3.1 使用用戶名登錄 .190
10.3.2 使用手機(jī)號登錄 .192 10.3.3 狀態(tài)保持 .193
10.3.4 首頁展示用戶名 .194
10.3.5 退出登錄 .195
10.4 用戶中心 195
10.4.1 用戶基本信息 .196
10.4.2 添加郵箱 .198
10.4.3 基于Celery的郵箱驗(yàn)證 .200
10.4.4 省市區(qū)三級聯(lián)動 .207
10.4.5 新增與展示收貨地址 .211
10.4.6 設(shè)置默認(rèn)地址與修改地址標(biāo)題 .216
10.4.7 修改與刪除收貨地址 .218
10.4.8 修改登錄密碼 .221
小結(jié) .223
習(xí)題 .223
第 11 章 電商項(xiàng)目——商品數(shù)據(jù)的呈現(xiàn) .224
11.1 商品數(shù)據(jù)庫表設(shè)計(jì) .224
11.2 準(zhǔn)備商品數(shù)據(jù) .227
11.3 呈現(xiàn)首頁數(shù)據(jù) .231
11.3.1 呈現(xiàn)首頁商品分類 .231
11.3.2 呈現(xiàn)首頁商品廣告 .235
11.4 商品列表 .237
11.4.1 商品列表頁分析 .238
11.4.2 獲取商品分類 .239
11.4.3 列表面包屑導(dǎo)航 .242
11.4.4 呈現(xiàn)商品列表 .244
11.4.5 列表頁熱銷排行 .248
11.5 商品搜索 .250
11.5.1 準(zhǔn)備搜索引擎 .250
11.5.2 渲染商品搜索結(jié)果 .253
11.5.3 搜索結(jié)果分頁 .254
11.6 商品詳情 .255
11.6.1 分析與準(zhǔn)備商品詳情頁 .255
11.6.2 呈現(xiàn)商品詳情數(shù)據(jù) .256
11.7 用戶瀏覽記錄 .260
11.7.1 瀏覽記錄存儲方案 .260
11.7.2 保存和查詢?yōu)g覽記錄 .261
小結(jié) .264
習(xí)題 .264
第 12 章 電商項(xiàng)目——購物車 265
12.1 購物車存儲方案 265
12.1.1 登錄用戶購物車存儲方案 .265
12.1.2 未登錄用戶購物車存儲方案 .267
12.2 購物車管理 269
12.2.1 購物車添加商品 .269
12.2.2 展示購物車商品 .272
12.2.3 修改購物車商品 .274
12.2.4 刪除購物車商品 .277
12.2.5 全選購物車 .279
12.2.6 合并購物車 .281
12.3 展示購物車縮略信息 282
小結(jié) .285
習(xí)題 .285
第 13 章 電商項(xiàng)目——訂單模塊 286
13.1 結(jié)算訂單 286
13.1.1 邏輯分析與接口定義 .286
13.1.2 后端邏輯實(shí)現(xiàn) .287
13.1.3 前端頁面渲染 .290
13.2 提交訂單 292
13.2.1 定義訂單表模型 .292
13.2.2 保存訂單信息 .294
13.2.3 呈現(xiàn)訂單提交成功頁面 .296
13.3 基于事務(wù)的訂單數(shù)據(jù)保存 298
13.3.1 Django中事務(wù)的使用298
13.3.2 使用事務(wù)保存訂單數(shù)據(jù) .299
13.4 基于樂觀鎖的并發(fā)下單 301
13.5 查看訂單 303
小結(jié) .306
習(xí)題 .306
第 14 章 電商項(xiàng)目——支付與評價 .307
14.1 支付寶開放平臺介紹 307
14.2 對接支付寶系統(tǒng) 310
14.2.1 支付信息配置 .310
14.2.2 訂單支付功能 .312
14.2.3 保存訂單支付結(jié)果 .315
14.3 商品評價 316
14.3.1 評價訂單商品 .317
14.3.2 在詳情頁展示商品評價 319
小結(jié) .322
習(xí)題 .322