内容简介
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