深入理解 Flask

傑克·史都華 (Jack Stouffer)

  • 出版商: 電子工業出版社
  • 出版日期: 2016-07-01
  • 定價: CNY $79.00
  • 售價: $474
  • 貴賓價: 9.5$450
  • 語言: 簡體中文
  • 頁數: 256
  • 裝訂: 平裝
  • ISBN: 7121292319
  • ISBN-13: 9787121292316

下單後立即進貨 (4週~6週)

買這商品的人也買了...

產品描述

<內容介紹>

Flask是在Python用戶中最為流行的Web開發框架。本書從一個簡單的Flask項目入手,由淺入深地探討了一系列實戰問題,包括如何使用SQLAlchem​​y和Jinja等工具進行Web開發;如何正確地設計擴展性強的Flask應用架構和搭建MVC環境;對於各種NoSQL數據庫的特性,何時應該、何時不應該及如何使用它們;通過使用Flask擴展快速實現用戶的身份系統、RESTful API、NoSQL查詢、後台管理等功能;如何創建自己的擴展;使用Celery編寫異步任務,使用py.test進行單元測試等;最後介紹瞭如何部署上線,包括使用自己搭建的服務器或使用各種雲服務,以及如何權衡和選擇這些不同的解決方案。


<目錄>


第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