內容簡介
Flask是在Python用戶中為流行的Web開發框架。本書從一個簡單的Flask項目入手,由淺入深地探討瞭一係列實戰問題,包括如何使用SQLAlchemy和Jinja等工具進行Web開發;如何正確地設計擴展性強的Flask應用架構和搭建MVC環境;對於各種NoSQL數據庫的特性,何時應該、何時不應該及如何使用它們;通過使用Flask擴展快速實現用戶的身份係統、RESTful API、NoSQL查詢、後颱管理等功能;如何創建自己的擴展;使用Celery編寫異步任務,使用py.test進行單元測試等;*後介紹瞭如何部署上綫,包括使用自己搭建的服務器或使用各種雲服務,以及如何權衡和選擇這些不同的解決方案。
作者簡介
譯者蘇丹,來自山城重慶,畢業於北京師範大學;現豆瓣資深開發工程師,主要開發作品有豆瓣FM等;有多年Python編程實踐經驗;曾參與《Learning Android中文版》一書翻譯。 Jack Stouffer是一位有數年web應用開發經驗的程序員。他在兩年前將他所有的項目都切換到瞭Flask。他目前在位於密歇根州奧本山的Apollo America工作,使用Python、Flask和JavaScript編寫企業內部業務工具。Jack是開源技術的信徒與支持者,在GitHub上發布以他所推薦的*佳實踐原則編寫的Flask範例時,立即成為瞭綫上*受歡迎的Flask代碼庫。Jack還曾經擔任Packt Publishing的《Flask Framework Cookbook》一書的審稿人。
目錄
第1章 入門 1
使用Git進行版本控製 1
安裝Git 1
Git基礎 2
使用pip管理Python包 4
在Windows上安裝pip 4
在Mac OS X和Linux上安裝Python包管理器pip 5
pip基本操作 6
用virtualenv的沙盒管理依賴 7
virtualenv基礎 7
開始我們的項目 8
使用Flask Script 9
總結 10
第2章 使用SQLAlchemy創建數據模型 11
設置SQLAlchemy 11
Python安裝包 12
Flask SQLAlchemy 12
我們的第1個數據模型 13
創建user錶 15
CRUD 16
新增數據 16
讀取數據 16
修改數據 19
刪除數據 19
數據模型之間的關聯 20
一對多 20
多對多 23
SQLAlchemy會話對象的方便之處 25
使用Alembic進行數據庫遷移 26
總結 28
第3章 通過模闆創建視圖 29
Jinja的語法 29
過濾器 30
注釋 34
if語句 34
循環 35
宏 36
Flask特有的變量和函數 37
創建視圖 38
視圖函數 38
編寫和繼承模闆 41
Flask WTForms 45
WTForms基礎 46
自定義檢驗器 48
發布評論 48
總結 51
第4章 使用藍圖創建控製器 52
請求的構建和銷毀,以及全局變量 52
錯誤頁麵 53
使用類描述視圖 53
方法視圖 55
藍圖 55
總結 57
第5章 進階的應用結構 58
模塊項目 58
重構代碼 59
應用的工廠模式 62
總結 64
第6章 保護應用安全 65
準備工作 65
修改用戶模型 65
創建錶單 67
創建視圖 71
社交網絡登錄 76
使用會話 84
使用Flask Login 87
用戶角色 90
總結 95
第7章 在Flask中使用NoSQL數據庫 96
NoSQL數據庫的種類 96
鍵值數據庫 97
文檔數據庫 97
列式數據庫 98
基於圖的數據庫 100
關係型數據庫與NoSQL的比較 101
關係型數據庫的優勢 102
NoSQL數據庫的優勢 103
在什麼情況下用什麼數據庫 104
在Flask中使用MongoDB 105
安裝MongoDB 106
配置MongoEngine 106
定義文檔 107
CRUD 112
NoSQL中的關聯關係 117
利用NoSQL的強大能力 120
總結 126
第8章 構建RESTful API 127
REST是什麼 127
構建RESTful Flask API 130
GET請求 131
格式化輸齣 132
請求中的參數 135
POST請求 138
身份認證 140
PUT請求 143
DELETE請求 146
總結 147
第9章 使用Celery編寫異步任務 148
Celery是什麼 148
配置Celery和RabbitMQ 150
在Celery中創建任務 151
運行Celery任務 154
Celery工作流 155
監控Celery 160
在Flower中通過網頁進行監控 161
創建一個提醒應用 161
生成每周摘要 163
總結 167
第10章 有用的Flask擴展 168
Flask Script 168
Flask Debug Toolbar 170
Flask Cache 173
緩存函數和視圖 174
緩存帶參數的函數 175
緩存帶有查詢參數的路徑 177
使用Redis作為緩存後端 177
使用memcached 作為緩存後端 178
Flask Assets 178
Flask Admin 181
編寫基礎管理頁麵 182
編寫數據庫管理頁麵 184
增強文章管理功能 185
編寫文件係統管理頁麵 187
保護Flask Admin的安全 188
Flask Mail 189
總結 190
第11章 構建你自己的擴展 192
編寫一個YouTube Flask擴展 192
創建Python包 196
通過Flask擴展修改響應數據 198
總結 200
第12章 測試Flask應用 201
什麼是單元測試 201
怎樣進行測試 202
對應用進行單元測試 202
測試路由函數 203
用戶界麵測試 208
測試覆蓋率 213
測試驅動的開發 216
總結 218
第13章 部署Flask應用 219
部署在你自己的服務器上 219
使用fabric把代碼推送到服務器 220
使用supervisor運行你的Web服務器 222
Gevent 224
Tornado 225
Nginx和uWSGI 226
Apache和uWSGI 229
部署在Heroku上 230
使用Heroku Postgres 231
在Heroku中使用Celery 232
在AWS上部署應用 233
在Amazon Elastic Beanstalk上使用Flask 233
使用Amazon Relational Database Service 235
在Amazon Simple Queue Service中使用Celery 236
總結 237
前言/序言
深入理解 Flask 下載 mobi epub pdf txt 電子書 格式