Python Web開發(fā)從入門到精通循序漸進地講解了Python Web開發(fā)的核心知識,并通過具體實例的實現(xiàn)過程演示了Web開發(fā)程序的流程。Python Web開發(fā)從入門到精通共15章,內(nèi)容包括Python語言基礎(chǔ)、Tornado Web開發(fā)基礎(chǔ)、開發(fā)動態(tài)Tornado Web程序、開發(fā)異步Web程序、構(gòu)建安全的Tornado Web、Django Web開發(fā)基礎(chǔ)、Django數(shù)據(jù)庫操作、Django典型應(yīng)用開發(fā)實戰(zhàn)、Django高級開發(fā)實戰(zhàn)、Flask Web開發(fā)基礎(chǔ)、使用Flask模板、實現(xiàn)表單操作、Flask數(shù)據(jù)庫操作、Flask高級實戰(zhàn)和在線博客+商城系統(tǒng)。Python Web開發(fā)從入門到精通簡潔而不失技術(shù)深度,內(nèi)容豐富全面。不僅易于閱讀,同時涵蓋了其他同類圖書中很少涉及的參考資料,是學習Python Web開發(fā)的實用教程。
Python Web開發(fā)從入門到精通適用于已了解Python語言基礎(chǔ)語法,希望進一步提高自己Python開發(fā)水平的讀者,還可作為大中專院校和培訓學校相關(guān)專業(yè)師生的學習參考用書。
目錄
前言
第1章 Python語言基礎(chǔ)1
1.1 Python語言介紹1
1.1.1 Python語言的地位1
1.1.2 Python語言的優(yōu)點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 認識第一段Python程序:人生苦短,我用Python!12
1.4.1 使用IDLE編碼并運行12
1.4.2 使用命令行方式運行Python程序13
1.4.3 使用交互式方式運行Python程序13
1.4.4 使用PyCharm實現(xiàn)第一個Python程序14
第2章 Tornado Web開發(fā)基礎(chǔ)18
2.1 Tornado框架基礎(chǔ)18
2.1.1 Tornado框架介紹18
2.1.2 安裝Tornado19
2.2 編寫第一個Tornado程序20
2.2.1 一個基本的Tornado框架程序20
2.2.2 獲取請求參數(shù)21
2.2.3 使用Cookie23
2.2.4 實現(xiàn)URL轉(zhuǎn)向25
2.3 使用表單收集數(shù)據(jù)26
2.4 使用模板讓Web更加美觀27
2.4.1 會員注冊和登錄驗證系統(tǒng)27
2.4.2 使用模板函數(shù)和CSS30
2.4.3 會員登錄和退出系統(tǒng)33
2.5 使用靜態(tài)資源文件37
2.5.1 照片展示37
2.5.2 時鐘系統(tǒng)37
2.6 使用塊擴展模板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 自動轉(zhuǎn)義和模板格式化47
2.8.1 自動轉(zhuǎn)義47
2.8.2 在線留言板系統(tǒng)48
2.8.3 圖書展示系統(tǒng)51
第3章 開發(fā)動態(tài)Tornado Web程序56
3.1 使用MongoDB數(shù)據(jù)庫實現(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 動態(tài)圖書管理系統(tǒng)60
3.2 使用MySQL數(shù)據(jù)庫實現(xiàn)持久化Web服務(wù)66
3.2.1 搭建PyMySQL數(shù)據(jù)庫環(huán)境66
3.2.2 簡易會員登錄系統(tǒng)67
3.3 使用ORM實現(xiàn)持久化Web服務(wù)69
3.3.1 Python和ORM69
3.3.2 使用SQLAlchemy70
3.4 使用MariaDB數(shù)據(jù)庫實現(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ā)簡易博客系統(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請求92
4.2.1 Tornado的異步處理機制92
4.2.2 Tornado異步處理相關(guān)裝飾器95
4.3 Tornado長輪詢100
4.3.1 長輪詢介紹100
4.3.2 開發(fā)一個購物車程序101
4.4 Tornado與WebSocket106
4.4.1 WebSocket介紹106
4.4.2 Tornado中的WebSocket模塊107
4.4.3 使用WebSocket實現(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ā)一個訪問計數(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è)計模式136
6.3 創(chuàng)建第一個Django工程136
6.4 在URL中傳遞參數(shù)139
6.4.1 URL的運行流程139
6.4.2 兩個傳參方法path()和_re_path()140
6.4.3 URL的命名和方法reverse()141
6.4.4 URL指向基于類的視圖142
6.4.5 實戰(zhàn)演練:一個加法計算器142
6.5 使用視圖145
6.5.1 一個最簡單的視圖145
6.5.2 一個博客的例子146
6.5.3 使用簡易視圖文件實例147
6.6 使用表單148
6.7 使用模板150
6.7.1 Django模板的基礎(chǔ)用法150
6.7.2 模板過濾器152
6.7.3 模板標簽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對象的方法162
7.2.3 使用QuerySet API操作MySQL數(shù)據(jù)庫167
7.3 Django+暢言插件+MySQL實現(xiàn)一個精美博客系統(tǒng)172
7.3.1 系統(tǒng)配置173
7.3.2 實現(xiàn)模型173
7.3.3 自動創(chuàng)建數(shù)據(jù)表177
7.3.4 運行調(diào)試178
第8章 Django典型應(yīng)用開發(fā)實戰(zhàn)179
8.1 Django Admin管理179
8.1.1 Django Admin基礎(chǔ)179
8.1.2 使用Django Admin開發(fā)一個博客系統(tǒng)183
8.2 表單的典型應(yīng)用186
8.2.1 用戶登錄驗證系統(tǒng)187
8.2.2 文件上傳系統(tǒng)190
8.3 使用Ajax195
8.3.1 Ajax技術(shù)的原理195
8.3.2 無刷新計算器196
8.3.3 Ajax上傳和下載系統(tǒng)198
8.4 使用Cookie和Session205
8.4.1 Django框架中的Cookie206
8.4.2 Django框架中的Session210
第9章 Django高級開發(fā)實戰(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ā)一個簡易新聞系統(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的對比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 初步認識Flask程序246
10.3.1 編寫第一個FlaskWeb程序246
10.3.2 使用PyCharm開發(fā)Flask程序247
10.4 分析Flask程序的基本結(jié)構(gòu)249
10.4.1 運行方法run()249
10.4.2 路由處理250
10.4.3 處理URL參數(shù)251
10.4.4 傳遞HTTP請求253
10.4.5 模擬實現(xiàn)最簡單的用戶登錄系統(tǒng)255
10.5 使用Session和Cookie257
10.5.1 使用Cookie257
10.5.2 使用Session258
10.6 使用Flask-Script擴展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擴展272
11.3.1 Flask-Bootstrap擴展的基礎(chǔ)273
11.3.2 在Flask Web中使用Flask-Bootstrap擴展274
11.4 使用Flask-Moment擴展本地化日期和時間276
11.4.1 Flask-Moment基礎(chǔ)276
11.4.2 自定義錯誤頁面277
11.4.3 使用Flask-Moment顯示時間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ù)實戰(zhàn)演練286
第12章 實現(xiàn)表單操作289
12.1 使用Flask-WTF擴展289
12.1.1 Flask-WTF基礎(chǔ)289
12.1.2 使用Flask-WTF處理表單291
12.2 重定向和會話處理293
12.2.1 Flask中的重定向和會話處理293
12.2.2 實現(xiàn)重定向和會話處理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 簡易文件上傳程序298
12.4.2 查看上傳的圖片299
12.4.3 使用Flask-WTF實現(xiàn)文件上傳301
12.5 登錄驗證302
12.5.1 驗證兩次密碼是否相等302
12.5.2 注冊驗證和登錄驗證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實現(xiàn)一個簡易會員用戶登錄系統(tǒng)319
13.4.3 使用SQLAlchemy實現(xiàn)一個小型BBS系統(tǒng)321
13.5 使用Flask-Migrate實現(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高級實戰(zhàn)328
14.1 收發(fā)電子郵件328
14.1.1 使用Flask-Mail 擴展328
14.1.2 使用SendGrid發(fā)送郵件332
14.1.3 異步發(fā)送電子郵件334
14.1.4 會員利用郵箱找回密碼335
14.2 使用Werkzeug實現(xiàn)散列密碼344
14.2.1 Werkzeug基礎(chǔ)344
14.2.2 圖書借閱管理系統(tǒng)345
14.3 使用 Flask-Login認證用戶354
14.3.1 Flask-Login基礎(chǔ)354
14.3.2 簡易登錄驗證系統(tǒng)355
14.4 用戶注冊、登錄驗證系統(tǒng)361
14.4.1 使用WTForms處理表單361
14.4.2 路徑導(dǎo)航和視圖處理361
14.4.3 模板文件363
第15章 在線博客+商城系統(tǒng)365
15.1 新的項目365
15.2 項目規(guī)劃分析366
15.2.1 電子商務(wù)的簡要介紹366
15.2.2 在線博客+商城系統(tǒng)構(gòu)成模塊367
15.3 規(guī)劃項目文件368
15.4 使用第三方庫Mezzanine和Cartridge369
15.4.1 使用庫Mezzanine369
15.4.2 使用庫Cartridge372
15.5 實現(xiàn)基本功能375
15.5.1 項目配置375
15.5.2 后臺模塊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 訂單確認頁面392
15.6.5 訂單完成發(fā)送郵件提醒394