前言 xi
第一部分 Flask簡介
第1章 安裝 3
1.1 創建應用目錄 4
1.2 虛擬環境 4
1.3 在Python 3中創建虛擬環境 4
1.4 在Python 2中創建虛擬環境 5
1.5 使用虛擬環境 5
1.6 使用pip安裝Python包 6
第2章 應用的基本結構 7
2.1 初始化 7
2.2 路由和視圖函數 7
2.3 一個完整的應用 9
2.4 Web開發服務器 9
2.5 動態路由 10
2.6 調試模式 11
2.7 命令行選項 13
2.8 請求–響應循環 14
2.8.1 應用和請求上下文 14
2.8.2 請求分派 16
2.8.3 請求對象 16
2.8.4 請求鈎子 17
2.8.5 響應 18
2.9 Flask擴展 19
第3章 模闆 20
3.1 Jinja2模闆引擎 20
3.1.1 渲染模闆 21
3.1.2 變量 21
3.1.3 控製結構 22
3.2 使用Flask-Bootstrap集成Bootstrap 24
3.3 自定義錯誤頁麵 27
3.4 鏈接 29
3.5 靜態文件 30
3.6 使用Flask-Moment本地化日期和時間 31
第4章 Web錶單 34
4.1 配置 34
4.2 錶單類 35
4.3 把錶單渲染成HTML 37
4.4 在視圖函數中處理錶單 38
4.5 重定嚮和用戶會話 40
4.6 閃現消息 42
第5章 數據庫 44
5.1 SQL數據庫 44
5.2 NoSQL數據庫 45
5.3 使用SQL還是NoSQL 46
5.4 Python數據庫框架 46
5.5 使用Flask-SQLAlchemy管理數據庫 47
5.6 定義模型 48
5.7 關係 49
5.8 數據庫操作 51
5.8.1 創建錶 51
5.8.2 插入行 51
5.8.3 修改行 53
5.8.4 刪除行 53
5.8.5 查詢行 53
5.9 在視圖函數中操作數據庫 55
5.10 集成Python shell 56
5.11 使用Flask-Migrate實現數據庫遷移 56
5.11.1 創建遷移倉庫 57
5.11.2 創建遷移腳本 57
5.11.3 更新數據庫 58
5.11.4 添加幾個遷移 59
第6章 電子郵件 60
第7章 大型應用的結構 65
7.1 項目結構 65
7.2 配置選項 66
7.3 應用包 67
7.3.1 使用應用工廠函數 68
7.3.2 在藍本中實現應用功能 69
7.4 應用腳本 71
7.5 需求文件 71
7.6 單元測試 72
7.7 創建數據庫 74
7.8 運行應用 74
第二部分 實例:社交博客應用
第8章 用戶身份驗證 77
8.1 Flask的身份驗證擴展 77
8.2 密碼安全性 77
8.3 創建身份驗證藍本 80
8.4 使用Flask-Login驗證用戶身份 81
8.4.1 準備用於登錄的用戶模型 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 確認賬戶 90
8.6.1 使用itsdangerous生成確認令牌 90
8.6.2 發送確認郵件 92
8.7 管理賬戶 95
第9章 用戶角色 97
9.1 角色在數據庫中的錶示 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 創建虛擬博客文章數據 119
11.3.2 在頁麵中渲染數據 120
11.3.3 添加分頁導航 121
11.4 使用Markdown和Flask-PageDown支持富文本文章 123
11.4.1 使用Flask-PageDown 124
11.4.2 在服務器端處理富文本 125
11.5 博客文章的固定鏈接 126
11.6 博客文章編輯器 128
第12章 關注者 130
12.1 再論數據庫關係 130
12.1.1 多對多關係 130
12.1.2 自引用關係 132
12.1.3 高級多對多關係 132
12.2 在資料頁麵中顯示關注者 135
12.3 使用數據庫聯結查詢所關注用戶的文章 137
12.4 在首頁顯示所關注用戶的文章 139
第13章 用戶評論 143
13.1 評論在數據庫中的錶示 143
13.2 提交和顯示評論 144
13.3 管理評論 146
第14章 應用編程接口 150
14.1 REST簡介 150
14.1.1 資源就是一切 151
14.1.2 請求方法 151
14.1.3 請求和響應主體 152
14.1.4 版本 153
14.2 使用Flask實現REST式Web服務 153
14.2.1 創建API藍本 153
14.2.2 錯誤處理 154
14.2.3 使用Flask-HTTPAuth驗證用戶身份 156
14.2.4 基於令牌的身份驗證 158
14.2.5 資源和JSON的序列化轉換 159
14.2.6 實現資源的各個端點 161
14.2.7 分頁大型資源集閤 163
14.2.8 使用HTTPie測試Web服務 164
第三部分 成功在望
第15章 測試 169
15.1 獲取代碼覆蓋度報告 169
15.2 Flask測試客戶端 172
15.2.1 測試Web應用 172
15.2.2 測試Web服務 175
15.3 使用Selenium進行端到端測試 176
15.4 值得測試嗎 180
第16章 性能 181
16.1 在日誌中記錄影響性能的緩慢數據庫查詢 181
16.2 分析源碼 183
第17章 部署 184
17.1 部署流程 184
17.2 把生産環境中的錯誤寫入日誌 185
17.3 雲部署 186
17.4 Heroku平颱 186
17.4.1 準備工作 187
17.4.2 使用heroku local測試 193
17.4.3 執行git push命令部署 194
17.4.4 升級後重新部署 195
17.5 Docker容器 195
17.5.1 安裝Docker 195
17.5.2 構建容器映像 196
17.5.3 運行容器 199
17.5.4 審查運行中的容器 200
17.5.5 把容器映像推送到外部注冊處 200
17.5.6 使用外部數據庫 201
17.5.7 使用Docker Compose編排容器 202
17.5.8 清理舊容器和映像 205
17.5.9 在生産環境中使用Docker 205
17.6 傳統部署方式 206
17.6.1 架設服務器 206
17.6.2 導入環境變量 207
17.6.3 配置日誌 207
第18章 其他資源 209
18.1 使用集成開發環境 209
18.2 尋找Flask擴展 209
18.3 尋求幫助 210
18.4 參與Flask社區 210
作者簡介 211
關於封麵 211
· · · · · · (
收起)