《Flask Web開發:基於Python的Web套用開發實戰》是2014年人民郵電出版社出版的圖書,作者是Miguel Grinberg。
基本介紹
- 書名:Flask Web開發:基於Python的Web套用開發實戰
- 作者:美] Miguel Grinberg
- 譯者:安道
- ISBN:9787115373991
- 頁數:224
- 定價:59.00元
- 出版社:人民郵電出版社
- 出版時間:2014-12
- 裝幀:平裝
內容簡介,作者簡介,目錄,
內容簡介
本書不僅適合初級Web開發人員學習閱讀,更是Python程式設計師用來學習高級Web開發技術的參考書。
學習Flask套用的基本結構,編寫示例套用;
· 使用必備的組件,包括模板、資料庫、Web表單和電子郵件支持;
· 使用包和模組構建可伸縮的大型套用;
· 實現用戶認證、角色和個人資料;
· 在部落格網站中重用模板、分頁顯示列表以及使用富文本;
· 使用基於Flask的REST式API,在智慧型手機、平板電腦和其他第三方客戶端上實現可用功能;
· 學習運行單元測試以及提升性能;
· 將Web套用部署到生產伺服器。
作者簡介
Miguel Grinberg
擁有25年開發經驗的高級軟體工程師,為廣播公司開發視頻軟體。他常在個人部落格上撰寫各類博文,內容主要涉及Web開發、機器人技術、攝影,偶爾也會有一些影評。他和妻子、四個孩子、兩隻狗和一隻貓共同生活在俄勒岡州波特蘭市。
目錄
前言 XI
第一部分 Flask簡介
第1章 安裝 3
1.1 使用虛擬環境 4
1.2 使用pip安裝Python包 6
第2章 程式的基本結構 7
2.1 初始化 7
2.2 路由和視圖函式 7
2.3 啟動伺服器 9
2.4 一個完整的程式 9
2.5 請求-回響循環 11
2.5.1 程式和請求上下文 11
2.5.2 請求調度 13
2.5.3 請求鉤子 13
2.5.4 回響 14
2.6 Flask擴展 15
第3章 模板 19
3.1 Jinja2模板引擎 19
3.1.1 渲染模板 20
3.1.2 變數 21
3.1.3 控制結構 22
3.2 使用Flask-Bootstrap集成Twitter Bootstrap 23
3.3 自定義錯誤頁面 26
3.4 連結 29
3.5 靜態檔案 29
3.6 使用Flask-Moment本地化日期和時間 30
第4章 Web表單 33
4.1 跨站請求偽造保護 33
4.2 表單類 34
4.3 把表單渲染成HTML 35
4.4 在視圖函式中處理表單 37
4.5 重定向和用戶會話 39
4.6 Flash訊息 41
第5章 資料庫 43
5.1 SQL資料庫 43
5.2 NoSQL資料庫 44
5.3 使用SQL還是NoSQL 45
5.4 Python資料庫框架 45
5.5 使用Flask-SQLAlchemy管理資料庫 46
5.6 定義模型 47
5.7 關係 49
5.8 資料庫操作 50
5.8.1 創建表 50
5.8.2 插入行 51
5.8.3 修改行 52
5.8.4 刪除行 52
5.8.5 查詢行 52
5.9 在視圖函式中運算元據庫 54
5.10 集成Python shell 56
5.11 使用Flask-Migrate實現資料庫遷移 56
5.11.1 創建遷移倉庫 57
5.11.2 創建遷移腳本 57
5.11.3 更新資料庫 58
第6章 電子郵件 59
使用Flask-Mail提供電子郵件支持 59
在Python shell中傳送電子郵件 60
在程式中集成傳送電子郵件功能 61
異步傳送電子郵件 62
第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
第二部分 實例:社交部落格程式
第8章 用戶認證 77
8.1 Flask的認證擴展 77
8.2 密碼安全性 77
8.3 創建認證藍本 80
8.4 使用Flask-Login認證用戶 81
8.4.1 準備用於登錄的用戶模型 81
8.4.2 保護路由 83
8.4.3 添加登錄表單 83
8.4.4 登入用戶 84
8.4.5 登出用戶 86
8.4.6 測試登錄 86
8.5 註冊新用戶 87
8.5.1 添加用戶註冊表單 87
8.5.2 註冊新用戶 89
8.6 確認賬戶 90
8.6.1 使用itsdangerous生成確認令牌 90
8.6.2 傳送確認郵件 92
8.7 管理賬戶 95
第9章 用戶角色 97
9.1 角色在資料庫中的表示 97
9.2 賦予角色 99
9.3 角色驗證 100
第10章 用戶資料 103
10.1 資料信息 103
10.2 用戶資料頁面 104
10.3 資料編輯器 106
10.3.1 用戶級別的資料編輯器 106
10.3.2 管理員級別的資料編輯器 108
10.4 用戶頭像 110
第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支持富文本文章 124
11.4.1 使用Flask-PageDown 124
11.4.2 在伺服器上處理富文本 125
11.5 部落格文章的固定連結 127
11.6 部落格文章編輯器 128
第12章 關注者 131
12.1 再論資料庫關係 131
12.1.1 多對多關係 131
12.1.2 自引用關係 133
12.1.3 高級多對多關係 134
12.2 在資料頁中顯示關注者 136
12.3 使用資料庫聯結查詢所關注用戶的文章 138
12.4 在首頁顯示所關注用戶的文章 141
第13章 用戶評論 145
13.1 評論在資料庫中的表示 145
13.2 提交和顯示評論 146
13.3 管理評論 149
第14章 套用編程接口 153
14.1 REST簡介 153
14.1.1 資源就是一切 154
14.1.2 請求方法 154
14.1.3 請求和回響主體 155
14.1.4 版本 156
14.2 使用Flask提供REST Web服務 156
14.2.1 創建API藍本 157
14.2.2 錯誤處理 157
14.2.3 使用Flask-HTTPAuth認證用戶 159
14.2.4 基於令牌的認證 161
14.2.5 資源和JSON的序列化轉換 162
14.2.6 實現資源端點 165
14.2.7 分頁大型資源集合 167
14.2.8 使用HTTPie測試Web服務 168
第三部分 成功在望
第15章 測試 173
15.1 獲取代碼覆蓋報告 173
15.2 Flask測試客戶端 176
15.2.1 測試Web程式 176
15.2.2 測試Web服務 179
15.3 使用Selenium進行端到端測試 180
15.4 值得測試嗎 184
第16章 性能 185
16.1 記錄影響性能的緩慢資料庫查詢 185
16.2 分析源碼 187
第17章 部署 189
17.1 部署流程 189
17.2 把生產環境中的錯誤寫入日誌 190
17.3 雲部署 191
17.4 Heroku平台 191
17.4.1 準備程式 192
17.4.2 使用Foreman進行測試 196
17.4.3 使用Flask-SSLify啟用安全HTTP 197
17.4.4 執行git push命令部署 198
17.4.5 查看日誌 199
17.4.6 部署一次升級 199
17.5 傳統的託管 200
17.5.1 架設伺服器 200
17.5.2 導入環境變數 200
17.5.3 配置日誌 201
第18章 其他資源 203
18.1 使用集成開發環境 203
18.2 查找Flask擴展 204
18.3 參與Flask開發 204
關於封面圖 205
第一部分 Flask簡介
第1章 安裝 3
1.1 使用虛擬環境 4
1.2 使用pip安裝Python包 6
第2章 程式的基本結構 7
2.1 初始化 7
2.2 路由和視圖函式 7
2.3 啟動伺服器 9
2.4 一個完整的程式 9
2.5 請求-回響循環 11
2.5.1 程式和請求上下文 11
2.5.2 請求調度 13
2.5.3 請求鉤子 13
2.5.4 回響 14
2.6 Flask擴展 15
第3章 模板 19
3.1 Jinja2模板引擎 19
3.1.1 渲染模板 20
3.1.2 變數 21
3.1.3 控制結構 22
3.2 使用Flask-Bootstrap集成Twitter Bootstrap 23
3.3 自定義錯誤頁面 26
3.4 連結 29
3.5 靜態檔案 29
3.6 使用Flask-Moment本地化日期和時間 30
第4章 Web表單 33
4.1 跨站請求偽造保護 33
4.2 表單類 34
4.3 把表單渲染成HTML 35
4.4 在視圖函式中處理表單 37
4.5 重定向和用戶會話 39
4.6 Flash訊息 41
第5章 資料庫 43
5.1 SQL資料庫 43
5.2 NoSQL資料庫 44
5.3 使用SQL還是NoSQL 45
5.4 Python資料庫框架 45
5.5 使用Flask-SQLAlchemy管理資料庫 46
5.6 定義模型 47
5.7 關係 49
5.8 資料庫操作 50
5.8.1 創建表 50
5.8.2 插入行 51
5.8.3 修改行 52
5.8.4 刪除行 52
5.8.5 查詢行 52
5.9 在視圖函式中運算元據庫 54
5.10 集成Python shell 56
5.11 使用Flask-Migrate實現資料庫遷移 56
5.11.1 創建遷移倉庫 57
5.11.2 創建遷移腳本 57
5.11.3 更新資料庫 58
第6章 電子郵件 59
使用Flask-Mail提供電子郵件支持 59
在Python shell中傳送電子郵件 60
在程式中集成傳送電子郵件功能 61
異步傳送電子郵件 62
第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
第二部分 實例:社交部落格程式
第8章 用戶認證 77
8.1 Flask的認證擴展 77
8.2 密碼安全性 77
8.3 創建認證藍本 80
8.4 使用Flask-Login認證用戶 81
8.4.1 準備用於登錄的用戶模型 81
8.4.2 保護路由 83
8.4.3 添加登錄表單 83
8.4.4 登入用戶 84
8.4.5 登出用戶 86
8.4.6 測試登錄 86
8.5 註冊新用戶 87
8.5.1 添加用戶註冊表單 87
8.5.2 註冊新用戶 89
8.6 確認賬戶 90
8.6.1 使用itsdangerous生成確認令牌 90
8.6.2 傳送確認郵件 92
8.7 管理賬戶 95
第9章 用戶角色 97
9.1 角色在資料庫中的表示 97
9.2 賦予角色 99
9.3 角色驗證 100
第10章 用戶資料 103
10.1 資料信息 103
10.2 用戶資料頁面 104
10.3 資料編輯器 106
10.3.1 用戶級別的資料編輯器 106
10.3.2 管理員級別的資料編輯器 108
10.4 用戶頭像 110
第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支持富文本文章 124
11.4.1 使用Flask-PageDown 124
11.4.2 在伺服器上處理富文本 125
11.5 部落格文章的固定連結 127
11.6 部落格文章編輯器 128
第12章 關注者 131
12.1 再論資料庫關係 131
12.1.1 多對多關係 131
12.1.2 自引用關係 133
12.1.3 高級多對多關係 134
12.2 在資料頁中顯示關注者 136
12.3 使用資料庫聯結查詢所關注用戶的文章 138
12.4 在首頁顯示所關注用戶的文章 141
第13章 用戶評論 145
13.1 評論在資料庫中的表示 145
13.2 提交和顯示評論 146
13.3 管理評論 149
第14章 套用編程接口 153
14.1 REST簡介 153
14.1.1 資源就是一切 154
14.1.2 請求方法 154
14.1.3 請求和回響主體 155
14.1.4 版本 156
14.2 使用Flask提供REST Web服務 156
14.2.1 創建API藍本 157
14.2.2 錯誤處理 157
14.2.3 使用Flask-HTTPAuth認證用戶 159
14.2.4 基於令牌的認證 161
14.2.5 資源和JSON的序列化轉換 162
14.2.6 實現資源端點 165
14.2.7 分頁大型資源集合 167
14.2.8 使用HTTPie測試Web服務 168
第三部分 成功在望
第15章 測試 173
15.1 獲取代碼覆蓋報告 173
15.2 Flask測試客戶端 176
15.2.1 測試Web程式 176
15.2.2 測試Web服務 179
15.3 使用Selenium進行端到端測試 180
15.4 值得測試嗎 184
第16章 性能 185
16.1 記錄影響性能的緩慢資料庫查詢 185
16.2 分析源碼 187
第17章 部署 189
17.1 部署流程 189
17.2 把生產環境中的錯誤寫入日誌 190
17.3 雲部署 191
17.4 Heroku平台 191
17.4.1 準備程式 192
17.4.2 使用Foreman進行測試 196
17.4.3 使用Flask-SSLify啟用安全HTTP 197
17.4.4 執行git push命令部署 198
17.4.5 查看日誌 199
17.4.6 部署一次升級 199
17.5 傳統的託管 200
17.5.1 架設伺服器 200
17.5.2 導入環境變數 200
17.5.3 配置日誌 201
第18章 其他資源 203
18.1 使用集成開發環境 203
18.2 查找Flask擴展 204
18.3 參與Flask開發 204
關於封面圖 205