Python Web開發(fā)從入門到精通循序漸進(jìn)地講解了Python Web開發(fā)的核心知識(shí),并通過具體實(shí)例的實(shí)現(xiàn)過程演示了Web開發(fā)程序的流程。Python Web開發(fā)從入門到精通共15章,內(nèi)容包括Python語言基礎(chǔ)、Tornado Web開發(fā)基礎(chǔ)、開發(fā)動(dòng)態(tài)Tornado Web程序、開發(fā)異步Web程序、構(gòu)建安全的Tornado Web、Django Web開發(fā)基礎(chǔ)、Django數(shù)據(jù)庫操作、Django典型應(yīng)用開發(fā)實(shí)戰(zhàn)、Django高級(jí)開發(fā)實(shí)戰(zhàn)、Flask Web開發(fā)基礎(chǔ)、使用Flask模板、實(shí)現(xiàn)表單操作、Flask數(shù)據(jù)庫操作、Flask高級(jí)實(shí)戰(zhàn)和在線博客+商城系統(tǒng)。Python Web開發(fā)從入門到精通簡(jiǎn)潔而不失技術(shù)深度,內(nèi)容豐富全面。不僅易于閱讀,同時(shí)涵蓋了其他同類圖書中很少涉及的參考資料,是學(xué)習(xí)Python Web開發(fā)的實(shí)用教程。
Python Web開發(fā)從入門到精通適用于已了解Python語言基礎(chǔ)語法,希望進(jìn)一步提高自己Python開發(fā)水平的讀者,還可作為大中專院校和培訓(xùn)學(xué)校相關(guān)專業(yè)師生的學(xué)習(xí)參考用書。
目錄
前言
第1章 Python語言基礎(chǔ)1
1.1 Python語言介紹1
1.1.1 Python語言的地位1
1.1.2 Python語言的優(yōu)點(diǎn)2
1.2 安裝Python3
1.2.1 在Windows系統(tǒng)中下載并安裝Python3
1.2.2 在macOS系統(tǒng)中下載并安裝Python6
1.2.3 在Linux系統(tǒng)中下載并安裝Python6
1.3 Python開發(fā)工具介紹7
1.3.1 使用Python自帶的開發(fā)工具IDLE7
1.3.2 本書的建議:使用最流行工具PyCharm8
1.4 認(rèn)識(shí)第一段Python程序:人生苦短,我用Python!12
1.4.1 使用IDLE編碼并運(yùn)行12
1.4.2 使用命令行方式運(yùn)行Python程序13
1.4.3 使用交互式方式運(yùn)行Python程序13
1.4.4 使用PyCharm實(shí)現(xiàn)第一個(gè)Python程序14
第2章 Tornado Web開發(fā)基礎(chǔ)18
2.1 Tornado框架基礎(chǔ)18
2.1.1 Tornado框架介紹18
2.1.2 安裝Tornado19
2.2 編寫第一個(gè)Tornado程序20
2.2.1 一個(gè)基本的Tornado框架程序20
2.2.2 獲取請(qǐng)求參數(shù)21
2.2.3 使用Cookie23
2.2.4 實(shí)現(xiàn)URL轉(zhuǎn)向25
2.3 使用表單收集數(shù)據(jù)26
2.4 使用模板讓W(xué)eb更加美觀27
2.4.1 會(huì)員注冊(cè)和登錄驗(yàn)證系統(tǒng)27
2.4.2 使用模板函數(shù)和CSS30
2.4.3 會(huì)員登錄和退出系統(tǒng)33
2.5 使用靜態(tài)資源文件37
2.5.1 照片展示37
2.5.2 時(shí)鐘系統(tǒng)37
2.6 使用塊擴(kuò)展模板40
2.6.1 塊40
2.6.2 模板中的塊41
2.7 使用UI模塊43
2.7.1 UI模塊介紹43
2.7.2 嵌入JavaScript和CSS45
2.8 自動(dòng)轉(zhuǎn)義和模板格式化47
2.8.1 自動(dòng)轉(zhuǎn)義47
2.8.2 在線留言板系統(tǒng)48
2.8.3 圖書展示系統(tǒng)51
第3章 開發(fā)動(dòng)態(tài)Tornado Web程序56
3.1 使用MongoDB數(shù)據(jù)庫實(shí)現(xiàn)持久化Web服務(wù)56
3.1.1 搭建MongoDB數(shù)據(jù)庫環(huán)境56
3.1.2 使用Tornado操作MongoDB數(shù)據(jù)庫58
3.1.3 動(dòng)態(tài)圖書管理系統(tǒng)60
3.2 使用MySQL數(shù)據(jù)庫實(shí)現(xiàn)持久化Web服務(wù)66
3.2.1 搭建PyMySQL數(shù)據(jù)庫環(huán)境66
3.2.2 簡(jiǎn)易會(huì)員登錄系統(tǒng)67
3.3 使用ORM實(shí)現(xiàn)持久化Web服務(wù)69
3.3.1 Python和ORM69
3.3.2 使用SQLAlchemy70
3.4 使用MariaDB數(shù)據(jù)庫實(shí)現(xiàn)持久化Web服務(wù)74
3.4.1 搭建MariaDB數(shù)據(jù)庫環(huán)境74
3.4.2 在Python程序中使用MariaDB數(shù)據(jù)庫77
3.4.3 使用Tornado+MariaDB開發(fā)簡(jiǎn)易博客系統(tǒng)77
第4章 開發(fā)異步Web程序85
4.1 同步和異步基礎(chǔ)85
4.1.1 同步處理85
4.1.2 異步處理86
4.1.3 Python中的同步和異步處理86
4.2 Tornado的異步Web請(qǐng)求92
4.2.1 Tornado的異步處理機(jī)制92
4.2.2 Tornado異步處理相關(guān)裝飾器95
4.3 Tornado長(zhǎng)輪詢100
4.3.1 長(zhǎng)輪詢介紹100
4.3.2 開發(fā)一個(gè)購物車程序101
4.4 Tornado與WebSocket106
4.4.1 WebSocket介紹106
4.4.2 Tornado中的WebSocket模塊107
4.4.3 使用WebSocket實(shí)現(xiàn)購物車功能108
4.5 Tornado+WebSocket在線聊天室110
4.5.1 主程序110
4.5.2 模板文件112
第5章 構(gòu)建安全的Tornado Web115
5.1 Cookie安全處理115
5.1.1 Tornado中的安全Cookie115
5.1.2 使用Cookie開發(fā)一個(gè)訪問計(jì)數(shù)器116
5.2 處理XSRF漏洞118
5.2.1 XSRF漏洞解析118
5.2.2 Tornado處理XSRF漏洞119
5.2.3 使用xsrf_cookies設(shè)置登錄系統(tǒng)的安全性120
5.3 Python+Tornado+MySQL博客系統(tǒng)122
5.3.1 數(shù)據(jù)庫連接配置122
5.3.2 URL鏈接處理125
5.3.3 視圖控制器125
5.3.4 生成JSON信息129
5.3.5 系統(tǒng)安全性設(shè)置130
第6章 Django Web開發(fā)基礎(chǔ)133
6.1 Django框架介紹133
6.2 Django開發(fā)基礎(chǔ)134
6.2.1 搭建Django環(huán)境134
6.2.2 常用的Django命令134
6.2.3 Django的MVC設(shè)計(jì)模式136
6.3 創(chuàng)建第一個(gè)Django工程136
6.4 在URL中傳遞參數(shù)139
6.4.1 URL的運(yùn)行流程139
6.4.2 兩個(gè)傳參方法path()和_re_path()140
6.4.3 URL的命名和方法reverse()141
6.4.4 URL指向基于類的視圖142
6.4.5 實(shí)戰(zhàn)演練:一個(gè)加法計(jì)算器142
6.5 使用視圖145
6.5.1 一個(gè)最簡(jiǎn)單的視圖145
6.5.2 一個(gè)博客的例子146
6.5.3 使用簡(jiǎn)易視圖文件實(shí)例147
6.6 使用表單148
6.7 使用模板150
6.7.1 Django模板的基礎(chǔ)用法150
6.7.2 模板過濾器152
6.7.3 模板標(biāo)簽153
6.7.4 模板繼承154
第7章 Django數(shù)據(jù)庫操作157
7.1 模型157
7.1.1 模型基礎(chǔ)157
7.1.2 在DjangoWeb程序中創(chuàng)建SQLite3數(shù)據(jù)庫159
7.2 使用QuerySet API161
7.2.1 QuerySet API基礎(chǔ)161
7.2.2 生成新的QuerySet對(duì)象的方法162
7.2.3 使用QuerySet API操作MySQL數(shù)據(jù)庫167
7.3 Django+暢言插件+MySQL實(shí)現(xiàn)一個(gè)精美博客系統(tǒng)172
7.3.1 系統(tǒng)配置173
7.3.2 實(shí)現(xiàn)模型173
7.3.3 自動(dòng)創(chuàng)建數(shù)據(jù)表177
7.3.4 運(yùn)行調(diào)試178
第8章 Django典型應(yīng)用開發(fā)實(shí)戰(zhàn)179
8.1 Django Admin管理179
8.1.1 Django Admin基礎(chǔ)179
8.1.2 使用Django Admin開發(fā)一個(gè)博客系統(tǒng)183
8.2 表單的典型應(yīng)用186
8.2.1 用戶登錄驗(yàn)證系統(tǒng)187
8.2.2 文件上傳系統(tǒng)190
8.3 使用Ajax195
8.3.1 Ajax技術(shù)的原理195
8.3.2 無刷新計(jì)算器196
8.3.3 Ajax上傳和下載系統(tǒng)198
8.4 使用Cookie和Session205
8.4.1 Django框架中的Cookie206
8.4.2 Django框架中的Session210
第9章 Django高級(jí)開發(fā)實(shí)戰(zhàn)215
9.1 系統(tǒng)配置文件215
9.1.1 配置文件的特性215
9.1.2 基本配置216
9.2 靜態(tài)文件218
9.2.1 靜態(tài)文件介紹218
9.2.2 在登錄表單中使用靜態(tài)文件219
9.3 使用模塊auth221
9.3.1 模塊auth的基礎(chǔ)221
9.3.2 使用模塊auth開發(fā)一個(gè)簡(jiǎn)易新聞系統(tǒng)227
9.4 發(fā)送郵件231
9.4.1 django.core.mail基礎(chǔ)231
9.4.2 使用smtplib開發(fā)郵件發(fā)送程序234
9.4.3 使用django.core.mail開發(fā)郵件發(fā)送程序235
第10章 Flask Web開發(fā)基礎(chǔ)238
10.1 Flask開發(fā)基礎(chǔ)238
10.1.1 Flask框架介紹238
10.1.2 Flask和Django的對(duì)比240
10.2 安裝Flask241
10.2.1 快速安裝Flask241
10.2.2 在虛擬環(huán)境安裝Flask242
10.2.3 使用PyCharm創(chuàng)建虛擬環(huán)境243
10.3 初步認(rèn)識(shí)Flask程序246
10.3.1 編寫第一個(gè)FlaskWeb程序246
10.3.2 使用PyCharm開發(fā)Flask程序247
10.4 分析Flask程序的基本結(jié)構(gòu)249
10.4.1 運(yùn)行方法run()249
10.4.2 路由處理250
10.4.3 處理URL參數(shù)251
10.4.4 傳遞HTTP請(qǐng)求253
10.4.5 模擬實(shí)現(xiàn)最簡(jiǎn)單的用戶登錄系統(tǒng)255
10.5 使用Session和Cookie257
10.5.1 使用Cookie257
10.5.2 使用Session258
10.6 使用Flask-Script擴(kuò)展260
第11章 使用Flask模板262
11.1 使用Jinja2模板引擎262
11.2 Jinja2模板的基本元素264
11.2.1 變量264
11.2.2 使用控制結(jié)構(gòu)266
11.2.3 包含頁和宏269
11.3 使用Flask-Bootstrap擴(kuò)展272
11.3.1 Flask-Bootstrap擴(kuò)展的基礎(chǔ)273
11.3.2 在Flask Web中使用Flask-Bootstrap擴(kuò)展274
11.4 使用Flask-Moment擴(kuò)展本地化日期和時(shí)間276
11.4.1 Flask-Moment基礎(chǔ)276
11.4.2 自定義錯(cuò)誤頁面277
11.4.3 使用Flask-Moment顯示時(shí)間278
11.5 鏈接280
11.6 使用靜態(tài)文件281
11.6.1 靜態(tài)文件介紹281
11.6.2 使用靜態(tài)文件281
11.7 可插拔視圖(Pluggable Views)283
11.7.1 使用可插拔視圖技術(shù)283
11.7.2 可插拔視圖技術(shù)實(shí)戰(zhàn)演練286
第12章 實(shí)現(xiàn)表單操作289
12.1 使用Flask-WTF擴(kuò)展289
12.1.1 Flask-WTF基礎(chǔ)289
12.1.2 使用Flask-WTF處理表單291
12.2 重定向和會(huì)話處理293
12.2.1 Flask中的重定向和會(huì)話處理293
12.2.2 實(shí)現(xiàn)重定向和會(huì)話處理294
12.3 Flash閃現(xiàn)提示295
12.3.1 Flash基礎(chǔ)295
12.3.2 使用模板渲染flash()函數(shù)的閃現(xiàn)提示信息297
12.4 文件上傳298
12.4.1 簡(jiǎn)易文件上傳程序298
12.4.2 查看上傳的圖片299
12.4.3 使用Flask-WTF實(shí)現(xiàn)文件上傳301
12.5 登錄驗(yàn)證302
12.5.1 驗(yàn)證兩次密碼是否相等302
12.5.2 注冊(cè)驗(yàn)證和登錄驗(yàn)證304
第13章 Flask數(shù)據(jù)庫操作309
13.1 關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫309
13.1.1 關(guān)系型數(shù)據(jù)庫309
13.1.2 非關(guān)系型數(shù)據(jù)庫310
13.2 Python語言的數(shù)據(jù)庫框架310
13.3 使用Flask-SQLAlchemy管理數(shù)據(jù)庫313
13.3.1 Flask-SQLAlchemy基礎(chǔ)313
13.3.2 定義模型314
13.3.3 關(guān)系316
13.4 使用Flask-SQLAlchemy操作數(shù)據(jù)庫317
13.4.1 數(shù)據(jù)表的基本操作318
13.4.2 使用SQLAlchemy實(shí)現(xiàn)一個(gè)簡(jiǎn)易會(huì)員用戶登錄系統(tǒng)319
13.4.3 使用SQLAlchemy實(shí)現(xiàn)一個(gè)小型BBS系統(tǒng)321
13.5 使用Flask-Migrate實(shí)現(xiàn)數(shù)據(jù)庫遷移325
13.5.1 創(chuàng)建遷移倉庫325
13.5.2 創(chuàng)建遷移腳本325
13.5.3 更新數(shù)據(jù)庫326
第14章 Flask高級(jí)實(shí)戰(zhàn)328
14.1 收發(fā)電子郵件328
14.1.1 使用Flask-Mail 擴(kuò)展328
14.1.2 使用SendGrid發(fā)送郵件332
14.1.3 異步發(fā)送電子郵件334
14.1.4 會(huì)員利用郵箱找回密碼335
14.2 使用Werkzeug實(shí)現(xiàn)散列密碼344
14.2.1 Werkzeug基礎(chǔ)344
14.2.2 圖書借閱管理系統(tǒng)345
14.3 使用 Flask-Login認(rèn)證用戶354
14.3.1 Flask-Login基礎(chǔ)354
14.3.2 簡(jiǎn)易登錄驗(yàn)證系統(tǒng)355
14.4 用戶注冊(cè)、登錄驗(yàn)證系統(tǒng)361
14.4.1 使用WTForms處理表單361
14.4.2 路徑導(dǎo)航和視圖處理361
14.4.3 模板文件363
第15章 在線博客+商城系統(tǒng)365
15.1 新的項(xiàng)目365
15.2 項(xiàng)目規(guī)劃分析366
15.2.1 電子商務(wù)的簡(jiǎn)要介紹366
15.2.2 在線博客+商城系統(tǒng)構(gòu)成模塊367
15.3 規(guī)劃項(xiàng)目文件368
15.4 使用第三方庫Mezzanine和Cartridge369
15.4.1 使用庫Mezzanine369
15.4.2 使用庫Cartridge372
15.5 實(shí)現(xiàn)基本功能375
15.5.1 項(xiàng)目配置375
15.5.2 后臺(tái)模塊376
15.5.3 博客模塊377
15.5.4 商品展示模塊383
15.6 在線購物387
15.6.1 購物車頁面387
15.6.2 訂單詳情頁面389
15.6.3 在線支付頁面392
15.6.4 訂單確認(rèn)頁面392
15.6.5 訂單完成發(fā)送郵件提醒394