Flask Web開發(fā) 基于Python的Web應(yīng)用開發(fā)實戰(zhàn) 第2版
定 價:69 元
叢書名:圖靈程序設(shè)計叢書
- 作者:[美]米格爾·格林貝格(Miguel Grinberg)
- 出版時間:2018/8/1
- ISBN:9787115489456
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書共分三部分,全面介紹如何基于Python微框架Flask進行Web開發(fā)。*部分是Flask簡介,介紹使用Flask框架及擴展開發(fā)Web程序的基礎(chǔ)知識。第二部分則給出一個實例,真正帶領(lǐng)大家一步步開發(fā)完整的博客和社交應(yīng)用Flasky,從而將前述知識融會貫通,付諸實踐。第三部分介紹了發(fā)布應(yīng)用之前必須考慮的事項,如單元測試策略、性能分析技術(shù)、Flask程序的部署方式等。第2版針對Python 3.6全面修訂。
本書是學(xué)習(xí)Flask的實用參考。其中介紹的數(shù)據(jù)庫交互操作和不同的部署方式讓我受益匪淺。Jason Myers
很喜歡這種項目驅(qū)動式的教材,每一步都十分清楚,從開發(fā)到測試再到部署的全過程都有講解。中文版讀者h(yuǎn)uron
給五星是因為本書的內(nèi)容太實用了,解決了Flask學(xué)習(xí)過程中的痛點,是一本難得的精煉且干貨十足的技術(shù)書。中文版讀者4widget
作為Python Web開發(fā)的微框架,F(xiàn)lask獨樹一幟。它不會強迫開fa者遵循預(yù)置的開發(fā)規(guī)范,為開fa者提供了自由度和創(chuàng)意空間。
本書是Web開發(fā)入門經(jīng)典教材狗書新版,針對Python 3全面修訂。作者采用講解與實例相結(jié)合的方法,不僅介紹了Flask安裝、使用等基礎(chǔ)知識和Flask核心功能,還帶領(lǐng)讀者從頭開始一步步開發(fā)了社交博客應(yīng)用Flasky,涵蓋開發(fā)、測試到部署的Web開發(fā)全過程。
·學(xué)習(xí)Flask應(yīng)用的基本結(jié)構(gòu),編寫示例應(yīng)用。
·使用組件,包括模板、數(shù)據(jù)庫、Web表單和電子郵件支持。
·使用包和模塊構(gòu)建可伸縮的大型應(yīng)用。
·實現(xiàn)用戶身份認(rèn)證、用戶角色和用戶資料。
·在博客網(wǎng)站中重用模板、分頁顯示列表以及使用富文本。
·使用基于Flask的REST式API,在手機、平板電腦和其他第三方客戶端上實現(xiàn)可用功能。
·學(xué)習(xí)運行單元測試以及提升性能。
·將Web應(yīng)用部署到生產(chǎn)服務(wù)器。
【作者簡介】
米格爾 格林貝格(Miguel Grinberg)
近30年開發(fā)經(jīng)驗的軟件工程師,以撰寫Python項目開發(fā)的博客而廣為Python開fa者所熟知,經(jīng)常受邀在PyCon等大會上分享開發(fā)經(jīng)驗。
【譯者簡介】
安道
專注于現(xiàn)代計算機技術(shù)的自由翻譯,譯有《流暢的Python》《Python網(wǎng)絡(luò)編程攻略》《Ruby on Rails教程》等書。
前言 xi
第 一部分 Flask簡介
第 1章 安裝 3
1.1 創(chuàng)建應(yīng)用目錄 4
1.2 虛擬環(huán)境 4
1.3 在Python 3中創(chuàng)建虛擬環(huán)境 4
1.4 在Python 2中創(chuàng)建虛擬環(huán)境 5
1.5 使用虛擬環(huán)境 5
1.6 使用pip安裝Python包 6
第 2章 應(yīng)用的基本結(jié)構(gòu) 7
2.1 初始化 7
2.2 路由和視圖函數(shù) 7
2.3 一個完整的應(yīng)用 9
2.4 Web開發(fā)服務(wù)器 9
2.5 動態(tài)路由 10
2.6 調(diào)試模式 11
2.7 命令行選項 13
2.8 請求?C響應(yīng)循環(huán) 14
2.8.1 應(yīng)用和請求上下文 14
2.8.2 請求分派 16
2.8.3 請求對象 16
2.8.4 請求鉤子 17
2.8.5 響應(yīng) 18
2.9 Flask擴展 19
第3章 模板 20
3.1 Jinja2模板引擎 20
3.1.1 渲染模板 21
3.1.2 變量 21
3.1.3 控制結(jié)構(gòu) 22
3.2 使用Flask-Bootstrap集成Bootstrap 24
3.3 自定義錯誤頁面 27
3.4 鏈接 29
3.5 靜態(tài)文件 30
3.6 使用Flask-Moment本地化日期和時間 31
第4章 Web表單 34
4.1 配置 34
4.2 表單類 35
4.3 把表單渲染成HTML 37
4.4 在視圖函數(shù)中處理表單 38
4.5 重定向和用戶會話 40
4.6 閃現(xiàn)消息 42
第5章 數(shù)據(jù)庫 44
5.1 SQL數(shù)據(jù)庫 44
5.2 NoSQL數(shù)據(jù)庫 45
5.3 使用SQL還是NoSQL 46
5.4 Python數(shù)據(jù)庫框架 46
5.5 使用Flask-SQLAlchemy管理數(shù)據(jù)庫 47
5.6 定義模型 48
5.7 關(guān)系 49
5.8 數(shù)據(jù)庫操作 51
5.8.1 創(chuàng)建表 51
5.8.2 插入行 51
5.8.3 修改行 53
5.8.4 刪除行 53
5.8.5 查詢行 53
5.9 在視圖函數(shù)中操作數(shù)據(jù)庫 55
5.10 集成Python shell 56
5.11 使用Flask-Migrate實現(xiàn)數(shù)據(jù)庫遷移 56
5.11.1 創(chuàng)建遷移倉庫 57
5.11.2 創(chuàng)建遷移腳本 57
5.11.3 更新數(shù)據(jù)庫 58
5.11.4 添加幾個遷移 59
第6章 電子郵件 60
第7章 大型應(yīng)用的結(jié)構(gòu) 65
7.1 項目結(jié)構(gòu) 65
7.2 配置選項 66
7.3 應(yīng)用包 67
7.3.1 使用應(yīng)用工廠函數(shù) 68
7.3.2 在藍(lán)本中實現(xiàn)應(yīng)用功能 69
7.4 應(yīng)用腳本 71
7.5 需求文件 71
7.6 單元測試 72
7.7 創(chuàng)建數(shù)據(jù)庫 74
7.8 運行應(yīng)用 74
第二部分 實例:社交博客應(yīng)用
第8章 用戶身份驗證 77
8.1 Flask的身份驗證擴展 77
8.2 密碼安全性 77
8.3 創(chuàng)建身份驗證藍(lán)本 80
8.4 使用Flask-Login驗證用戶身份 81
8.4.1 準(zhǔn)備用于登錄的用戶模型 82
8.4.2 保護路由 83
8.4.3 添加登錄表單 83
8.4.4 登入用戶 85
8.4.5 登出用戶 86
8.4.6 理解Flask-Login的運作方式 86
8.4.7 登錄測試 87
8.5 注冊新用戶 88
8.5.1 添加用戶注冊表單 88
8.5.2 注冊新用戶 90
8.6 確認(rèn)賬戶 90
8.6.1 使用itsdangerous生成確認(rèn)令牌 90
8.6.2 發(fā)送確認(rèn)郵件 92
8.7 管理賬戶 95
第9章 用戶角色 97
9.1 角色在數(shù)據(jù)庫中的表示 97
9.2 賦予角色 100
9.3 檢驗角色 101
第 10章 用戶資料 104
10.1 資料信息 104
10.2 用戶資料頁面 105
10.3 資料編輯器 107
10.3.1 用戶級資料編輯器 107
10.3.2 管理員級資料編輯器 109
10.4 用戶頭像 111
第 11章 博客文章 115
11.1 提交和顯示博客文章 115
11.2 在資料頁中顯示博客文章 118
11.3 分頁顯示長博客文章列表 118
11.3.1 創(chuàng)建虛擬博客文章數(shù)據(jù) 119
11.3.2 在頁面中渲染數(shù)據(jù) 120
11.3.3 添加分頁導(dǎo)航 121
11.4 使用Markdown和Flask-PageDown支持富文本文章 123
11.4.1 使用Flask-PageDown 124
11.4.2 在服務(wù)器端處理富文本 125
11.5 博客文章的固定鏈接 126
11.6 博客文章編輯器 128
第 12章 關(guān)注者 130
12.1 再論數(shù)據(jù)庫關(guān)系 130
12.1.1 多對多關(guān)系 130
12.1.2 自引用關(guān)系 132
12.1.3 高級多對多關(guān)系 132
12.2 在資料頁面中顯示關(guān)注者 135
12.3 使用數(shù)據(jù)庫聯(lián)結(jié)查詢所關(guān)注用戶的文章 137
12.4 在首頁顯示所關(guān)注用戶的文章 139
第 13章 用戶評論 143
13.1 評論在數(shù)據(jù)庫中的表示 143
13.2 提交和顯示評論 144
13.3 管理評論 146
第 14章 應(yīng)用編程接口 150
14.1 REST簡介 150
14.1.1 資源就是一切 151
14.1.2 請求方法 151
14.1.3 請求和響應(yīng)主體 152
14.1.4 版本 153
14.2 使用Flask實現(xiàn)REST式Web服務(wù) 153
14.2.1 創(chuàng)建API藍(lán)本 153
14.2.2 錯誤處理 154
14.2.3 使用Flask-HTTPAuth驗證用戶身份 156
14.2.4 基于令牌的身份驗證 158
14.2.5 資源和JSON的序列化轉(zhuǎn)換 159
14.2.6 實現(xiàn)資源的各個端點 161
14.2.7 分頁大型資源集合 163
14.2.8 使用HTTPie測試Web服務(wù) 164
第三部分 成功在望
第 15章 測試 169
15.1 獲取代碼覆蓋度報告 169
15.2 Flask測試客戶端 172
15.2.1 測試Web應(yīng)用 172
15.2.2 測試Web服務(wù) 175
15.3 使用Selenium進行端到端測試 176
15.4 值得測試嗎 180
第 16章 性能 181
16.1 在日志中記錄影響性能的緩慢數(shù)據(jù)庫查詢 181
16.2 分析源碼 183
第 17章 部署 184
17.1 部署流程 184
17.2 把生產(chǎn)環(huán)境中的錯誤寫入日志 185
17.3 云部署 186
17.4 Heroku平臺 186
17.4.1 準(zhǔn)備工作 187
17.4.2 使用heroku local測試 193
17.4.3 執(zhí)行g(shù)it push命令部署 194
17.4.4 升級后重新部署 195
17.5 Docker容器 195
17.5.1 安裝Docker 195
17.5.2 構(gòu)建容器映像 196
17.5.3 運行容器 199
17.5.4 審查運行中的容器 200
17.5.5 把容器映像推送到外部注冊處 200
17.5.6 使用外部數(shù)據(jù)庫 201
17.5.7 使用Docker Compose編排容器 202
17.5.8 清理舊容器和映像 205
17.5.9 在生產(chǎn)環(huán)境中使用Docker 205
17.6 傳統(tǒng)部署方式 206
17.6.1 架設(shè)服務(wù)器 206
17.6.2 導(dǎo)入環(huán)境變量 207
17.6.3 配置日志 207
第 18章 其他資源 209
18.1 使用集成開發(fā)環(huán)境 209
18.2 尋找Flask擴展 209
18.3 尋求幫助 210
18.4 參與Flask社區(qū) 210
作者簡介 211
關(guān)于封面 211