关于本书
Flask 是一个使用 Python 编写的轻量级 Web 应用框架,最初起源于一个愚人节玩笑。自2010年4月1日释出第一个版本以来,Flask 逐渐进入开发者的视野,迄今为止已积累了庞大的用户群。
Flask 也被称作“微框架”。什么是微框架呢?Flask 的官方文档是这样解释的:
“微”并不意味着整个 web 应用仅由单个 Python 文件构成(虽然这是可行的),也不意味着功能的不完备。“微”字的准确含义应该是:内核极简,支持扩展。Flask 不替开发者做决定。选择何种数据库或者模板引擎,完全由开发者自己做主。换句话说,Flask 可以成为你想象的任何样子。
总结来说,“微框架”的两个鲜明特点是:
- 内核极简。不像 Django 等全栈式框架,Flask 仅提供成为一个 Web 框架所要求的最基本的功能。如果一个功能并非框架核心所必须,那么它就不应该存在于内核之中。“约定重于配置”在 Flask 中并不是第一定律,比如,开发者可以自由选择任何一款数据库。
- 支持扩展。Flask 提供了非常灵活的扩增弹性,不论是使用第三方插件,还是编写自定义插件,都很容易完成。至今已经发展出了繁荣的插件社区,这与 Flask 的强扩展性是分不开的。
操作系统领域长期存在选择“微内核”还是“宏内核”的争论。网络上亦不乏围绕着“微框架”与“全栈式框架”的讨论。其实,大可不必拘泥于形而上的哲学讨论。每种工具都有其适用场景,也自有其不足。就像菜刀难以劈柴,斧头亦不能切菜,我们倒不如秉持着“实用主义”的原则,为特定的场景选择最合适的方法和工具。
Flask 具有平缓的学习曲线,初学者在极短时间内便可作出一个颇具形态的 Web 应用。不过有些开发者必定不满足于品尝美味,势必要刨根问底,追寻到背后的烹调手法才罢。这时就需要研读 Flask 的源码了。所幸 Flask 的源码简洁紧凑,总量不大,几乎没有多余代码。本书试图铺开 Flask 的源码细节,将 Flask 背后的设计理念展现给读者。读者读完后若可有一二收获,何其幸哉。
本书按照如下顺序进行编排:
- 第零章 Flask 简介
- 第一章 Flask 对象
- 1.1 WSGI 应用
- 1.2 Request 与 Response
- 1.3 应用上下文与请求上下文
- 1.4 Flask 对象
- 第二章 核心特性
- 2.1 配置管理
- 2.2 会话管理
- 2.3 模板
- 2.4 视图
- 2.5 蓝图
- 第三章 调试与测试
- 3.1 日志
- 3.2 调试
- 3.3 测试
- 第四章 周边设施
- 4.1 JSON 处理
- 4.2 信号
- 4.3 事件钩子
- 4.4 辅助函数
- 4.5 命令行接口
- 4.6 前向兼容
- 附录