作 者:(印)沙拉比·阿加沃爾 著 張騫 譯
定 價:89
出 版 社:清華大學出版社
出版日期:2020年06月01日
頁 數:264
裝 幀:平裝
ISBN:9787302556992
Flask是一個輕量級的可定制框架,使用Python語言編寫,較其他同類型框架更為靈活、輕便、安全且容易上手。Flask是目前十分流行的Web框架,采用Python編程語言來實現相關功能。Flask因為靈活、輕便且高效的特點被業界認可,同時擁有基於Werkzeug、Jinja2等開源庫,擁有內置服務測試,適配RESTful且支持安全的Cookie,而且官方文檔完整,便於學習掌握。
●第1章配置Flask1
1.1利用virtualenv設置開發環境3
1.1.1實現方式3
1.1.2工作方式3
1.1.3更多內容4
1.1.4另請參閱5
1.2處理基本的配置問題5
1.2.1準備工作5
1.2.2實現方式6
1.2.3工作方式7
1.3配置基於類的設置7
1.3.1實現方式7
1.3.2工作方式8
1.4組織靜態文件8
1.4.1實現方式8
1.4.2工作方式9
1.4.3更多內容9
1.5特定於部署的實例文件夾10
1.5.1實現方式10
1.5.2工作方式11
1.6視圖和模型的組合11
1.6.1實現方式11
1.6.2工作方式13
1.6.3另請參閱14
1.7利用Blueprint創建模塊化的Web應用程序14
1.7.1準備工作14
1.7.2實現方式14
1.7.3工作方式15
1.7.4另請參閱16
1.8通過setuptools安裝Flask應用程序16
1.8.1實現方式16
1.8.2工作方式17
1.8.3另請參閱17
第2章基於Jinja2的模板機制19
2.1引導推薦的布局20
2.1.1準備工作20
2.1.2實現方式20
2.1.3工作方式21
2.2實現塊組合和布局繼承22
2.2.1準備工作22
2.2.2實現方式22
2.2.3工作方式26
2.3創建自定義上下文處理器28
2.4創建自定義Jinja2過濾器29
2.4.1實現方式29
2.4.2工作方式30
2.4.3另請參閱31
2.5為表單創建自定義宏31
2.5.1準備工作31
2.5.2實現方式31
2.6高級日期和時間格式32
2.6.1準備工作32
2.6.2實現方式33
2.6.3另請參閱34
第3章Flask中的數據模型35
3.1創建SQLAlchemyDB實例35
3.1.1準備工作36
3.1.2實現方式36
3.1.3更多內容37
3.1.4另請參閱38
3.2創建基本的產品模型38
3.2.1實現方式38
3.2.2工作方式41
3.2.3另請參閱41
3.3創建關繫分類模型41
3.3.1實現方式41
3.3.2另請參閱44
3.4利用Alembic和Flask-Migrate遷移數據庫44
3.4.1準備工作45
3.4.2實現方式45
3.4.3工作方式46
3.4.4另請參閱47
3.5基於Redis的索引模型數據47
3.5.1準備工作48
3.5.2實現方式48
3.5.3工作方式49
3.6基於MongoDB的NoSQL方式49
3.6.1準備工作49
3.6.2實現方式50
3.6.3另請參閱52
第4章與視圖協同工作53
4.1編寫基於函數的視圖和URL路由53
4.1.1準備工作53
4.1.2實現方式54
4.1.3工作方式55
4.1.4更多內容55
4.2編寫基於類的視圖56
4.2.1準備工作56
4.2.2實現方式56
4.2.3工作方式57
4.2.4更多內容57
4.2.5另請參閱58
4.3實現URL路由機制和基於產品的分頁機制58
4.3.1準備工作58
4.3.2實現方式58
4.3.3另請參閱60
4.4渲染至模板60
4.4.1準備工作60
4.4.2實現方式60
4.4.3工作方式64
4.4.4另請參閱65
4.5處理XHR請求65
4.5.1準備工作65
4.5.2實現方式65
4.5.3工作方式67
4.6使用裝飾器處理請求67
4.6.1準備工作67
4.6.2實現方式67
4.6.3另請參閱68
4.7創建自定義的404和500處理程序68
4.7.1準備工作69
4.7.2實現方式69
4.7.3工作方式69
4.7.4更多內容70
4.8閃動消息以獲得更好的用戶反饋70
4.8.1準備工作70
4.8.2實現方式70
4.8.3工作方式73
4.9實現基於SQL的搜索機制73
4.9.1準備工作74
4.9.2實現方式74
4.9.3工作方式75
第5章WTForms77
5.1將SQLAlchemy模型數據表示為表單77
5.1.1準備工作78
5.1.2實現方式78
5.1.3工作方式80
5.1.4另請參閱80
5.2驗證服務器端上的字段80
5.2.1實現方式81
5.2.2工作方式82
5.2.3更多內容83
5.2.4另請參閱83
5.3創建公共表單集合83
5.3.1實現方式84
5.3.2工作方式85
5.4創建自定義字段和驗證86
5.4.1實現方式86
5.4.2工作方式87
5.4.3更多內容87
5.5創建自定義微件88
5.5.1實現方式88
5.5.2工作方式89
5.5.3另請參閱89
5.6通過表單上傳文件90
5.6.1實現方式90
5.6.2工作方式92
5.7保護應用程序免受跨站點請求偽造(CSRF)93
5.7.1實現方式93
5.7.2工作方式95
第6章Flask中的身份驗證機制97
6.1創建簡單的基於會話的身份驗證97
6.1.1準備工作98
6.1.2實現方式98
6.1.3工作方式103
6.1.4另請參閱104
6.2基於Flask-Login擴展的身份驗證104
6.2.1準備工作105
6.2.2實現方式105
6.2.3工作方式108
6.2.4更多內容108
6.2.5另請參閱108
6.3使用Facebook進行身份驗證108
6.3.1準備工作108
6.3.2實現方式110
6.3.3工作方式112
6.4使用Google進行身份驗證112
6.4.1準備工作113
6.4.2實現方式114
6.4.3工作方式115
6.5使用Twitter進行身份驗證115
6.5.1準備工作116
6.5.2實現方式116
6.5.3工作方式118
6.6基於LDAP的身份驗證機制118
6.6.1準備工作118
6.6.2實現方式119
6.6.3工作方式122
6.6.4另請參閱123
第7章構建RESTfulAPI125
7.1創建基於類的REST接口126
7.1.1準備工作126
7.1.2實現方式126
7.1.3工作方式127
7.2創建基於擴展的REST接口127
7.2.1準備工作128
7.2.2實現方式128
7.2.3工作方式129
7.2.4另請參閱129
7.3創建完整的RESTfulAPI130
7.3.1準備工作130
7.3.2實現方式130
7.3.3工作方式132
第8章Flask應用程序管理接口135
8.1創建簡單的CRUD接口135
8.1.1準備工作136
8.1.2實現方式136
8.1.3工作方式139
8.2使用Flask-Admin擴展141
8.2.1準備工作141
8.2.2實現方式141
8.2.3工作方式142
8.2.4更多內容142
8.3利用Flask-Admin注冊模型143
8.3.1準備工作143
8.3.2實現方式143
8.3.3工作方式145
8.4創建自定義表單和操作146
8.4.1準備工作146
8.4.2實現方式146
8.4.3工作方式148
8.5使用WYSIWYG(所見即所得)編輯器148
8.5.1準備工作149
8.5.2實現方式149
8.5.3工作方式150
8.5.4另請參閱151
8.6創建用戶角色151
8.6.1準備工作151
8.6.2實現方式152
8.6.3工作方式154
第9章國際化和本地化155
9.1添加一種新語言155
9.1.1準備工作155
9.1.2實現方式156
9.1.3工作方式158
9.1.4更多內容159
9.1.5另請參閱159
9.2實現延遲處理和gettext/ngettext函數159
9.2.1準備工作160
9.2.2實現方式160
9.3實現全球語言切換操作161
9.3.1準備工作161
9.3.2實現方式162
9.3.3工作方式163
9.3.4另請參閱163
第10章調試、錯誤處理和測試165
10.1設置基本的文件日志繫統166
10.1.1準備工作166
10.1.2實現方式166
10.1.3工作方式167
10.1.4更多內容168
10.1.5另請參閱168
10.2在出現錯誤時發送電子郵件168
10.2.1準備工作169
10.2.2工作方式169
10.2.3工作方式170
10.2.4更多內容170
10.3使用Sentry監視異常170
10.3.1準備工作170
10.3.2實現方式170
10.3.3工作方式172
10.4基於pdb的調試機制172
10.4.1準備工作172
10.4.2實現方式173
10.4.3工作方式173
10.4.4另請參閱173
10.5創建簡單的測試174
10.5.1準備工作174
10.5.2實現方式174
10.5.3工作方式175
10.5.4另請參閱175
10.6針對視圖和邏輯編寫多項測試176
10.6.1準備工作176
10.6.2實現方式176
10.6.3工作方式179
10.7nose庫集成179
10.7.1準備工作180
10.7.2實現方式180
10.7.3另請參閱180
10.8使用Mocking避免訪問API181
10.8.1準備工作181
10.8.2實現方式182
10.8.3工作方式184
10.8.4另請參閱184
10.9確定測試覆蓋率184
10.9.1準備工作184
10.9.2實現方式185
10.9.3工作方式186
10.9.4另請參閱187
10.10使用性能分析查找瓶頸187
10.10.1準備工作187
10.10.2實現方式187
10.10.3工作方式187
第11章部署和後期部署189
11.1基於Apache的部署機制189
11.1.1準備工作190
11.1.2實現方式191
11.1.3工作方式192
11.1.4更多內容192
11.1.5另請參閱193
11.2基於uWSGI和Nginx的部署機制193
11.2.1準備工作193
11.2.2實現方式193
11.2.3另請參閱195
11.3基於Gunicorn和Supervisor的部署機制195
11.3.1準備工作196
11.3.2實現方式196
11.3.3工作方式197
11.3.4另請參閱197
11.4基於Tornado的部署198
11.4.1準備工作198
11.4.2實現方式198
11.4.3工作方式199
11.5針對文件上傳使用S3存儲199
11.5.1準備工作199
11.5.2實現方式199
11.5.3工作方式201
11.5.4另請參閱201
11.6基於Heroku的部署201
11.6.1準備工作201
11.6.2實現方式202
11.6.3準備工作204
11.6.4更多內容204
11.7基於AWSElasticBeanstalk的部署機制204
11.7.1準備工作204
11.7.2實現方式205
11.7.3工作方式206
11.8利用NewRelic管理和監控應用程序208
11.8.1準備工作208
11.8.2實現方式209
11.8.3工作方式210
11.8.4另請參閱210
第12中微服務和容器211
12.1基於Docker的容器化機制211
12.1.1準備工作212
12.1.2實現方式213
12.1.3工作方式215
12.1.4另請參閱215
12.2基於Kubernetes的編排容器216
12.2.1準備工作216
12.2.2實現方式216
12.2.3工作方式218
12.2.4更多內容219
12.2.5另請參閱220
12.3AWSLambda上基於Zappa的無服務器操作220
12.3.1準備工作220
12.3.2實現方式220
12.3.3工作方式223
12.3.4另請參閱224
第13章提示和技巧225
13.1實現基於Whoosh的全文本搜索225
13.1.1準備工作226
13.1.2實現方式226
13.1.3工作方式227
13.1.4另請參閱227
13.2實現基於Elasticsearch的全文本搜索227
13.2.1準備工作228
13.2.2實現方式228
13.2.3工作方式230
13.3與信號協同工作230
13.3.1準備工作230
13.3.2實現方式231
13.3.3工作方式232
13.3.4另請參閱232
13.4在應用程序中使用緩存232
13.4.1準備工作233
13.4.2實現方式233
13.4.3工作方式233
13.4.4更多內容234
13.4.5另請參閱234
13.5實現Flask應用程序的電子郵件支持234
13.5.1準備工作235
13.5.2實現方式235
13.5.3工作方式235
13.5.4更多內容236
13.5.5另請參閱237
13.6了解異步操作237
13.6.1準備工作237
13.6.2實現方式237
13.6.3工作方式238
13.7與Celery協同工作238
13.7.1準備工作238
13.7.2實現方式238
13.7.3工作方式240
13.7.4另請參閱240
本書詳細闡述了與Flask開發相關的基本解決方案,主要包括“配置Flask”“基於Jinja2的模板機制”“Flask中的數據模型”“與視圖協同工作”“WTForms”“Flask中的身份驗證機制”“構建RESTful API”“Flask應用程序管理接口”“國際化和本地化”“調試、錯誤處理和測試”“部署和後期部署”“微服務和容器”“提示和技巧”等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。
本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。