Flask是一种具有平缓学习曲线和庞大社区支持的微框架,利用它可以构建大规模的Web应用。学习和上手Flask非常轻松,要深入理解它却并不容易。
杰克·史都华著的这本《深入理解Flask》从一个简单的Flask应用开始,通过解决若干实战中的问题,对一系列进阶的话题进行了探讨。书中使用MVC(模型—视图—控制器)架构对示例应用进行转化重构,以演示如何正确地组织应用代码的结构。有了可扩展性强的应用结构之后,使用了Flask扩展为应用提供额外的功能,包括用户登录和注册、NoSQL查询、RESTful API、一套后台管理界面及其他特性。然后,你会学到如何使用单元测试,保障代码持续按照正确的方式工作,避免极具风险的猜测式编程。本书最后会讨论可用于部署Flask应用的诸多不同平台,以及你必须考虑的每个平台的利弊。
Flask是在Python用户中最为流行的Web开发框架。杰克·史都华著的这本《深入理解Flask》从一个简单的Flask项目入手,由浅入深地探讨了一系列实战问题,包括如何使用SQLAlchemy和Jinja等工具进行Web开发;如何正确地设计扩展性强的Flask应用架构和搭建MVC环境:对于各种NoSQL数据库的特性,何时应该、何时不应该及如何使用它们;通过使用Flask扩展快速实现用户的身份系统、RESTfulAPI、NoSQL查询、后台管理等功能;如何创建自己的扩展;使用Celery编写异步任务,使用py.test进行单元测试等;最后介绍了如何部署上线,包括使用自己搭建的服务器或使用各种云服务,以及如何权衡和选择这些不同的解决方案。
第1章 入门
使用Git进行版本控制
安装Git
Git基础
使用pip管理Python包
在Windows上安装pip
在Mac OS X和Linux上安装Python包管理器pip
pip基本操作
用virtualenv的沙盒管理依赖
virtualenv基础
开始我们的项目
使用Flask Script
总结
第2章 使用SQLAlchemy创建数据模型
设置SQLAlchemy
Python安装包
Flask SQLAlchemy
我们的第1个数据模型
创建user表
CRUD
新增数据
读取数据
修改数据
删除数据
数据模型之间的关联
一对多
多对多
SQLAlchemy会话对象的方便之处
使用Alembic进行数据库迁移
总结
第3章 通过模板创建视图
Jinja的语法
过滤器
注释
if语句
循环
宏
Flask特有的变量和函数
创建视图
视图函数
编写和继承模板
Flask WTForms
WTForms基础
自定义检验器
……
第4章 使用蓝图创建控制器
第5章 进阶的应用结构
第6章 保护应用安全
第7章 在Flask中使用NoSQL数据库
第8章 构建RESTful API
第9章 使用Celery编写异步任务
第10章 有用的Flask扩展
第11章 构建你自己的扩展
第12章 测试Flask应用
第13章 部署Flask应用