与其他框架相比,Flask 之所以能脱颖而出, 原因在于它能够让开发者做主, 使其对应用拥有全面的创意控制。 或许你听过和框架斗争这一说法, 在大多数框架中, 当你决定使用的解决方案不受框架官方支持时就会发生这种情况。 你可能想使用不同的数据库引擎或者不同的用户身份验证方法, 但是这种偏离框架开发者设定路线的做法往往会给你带来很多麻烦。 Flask 就不一样了!
你喜欢关系型数据库? 很好。 Flask 支持所有的关系型数据库。 你更喜欢使用NoSQL 数据库? 没问题,Flask 也支持。 你想使用自己开发的数据库引擎, 根本用不到数据库? 依然没问题。 在 Flask 中, 你可以自主选择应用的组件, 如果找不到合适的, 还可以自己开发。 就这么简单!
Flask 之所以能给用户提供这么大的自由度, 关键在于其开发时就考虑到了扩展性。
Flask 提供了一个强健的核心, 其中包含每个 Web 应用都需要的基本功能, 而其他功能则交给生态系统中众多的第三方扩展当然, 你也可以自己开发。
本书将展示笔者使用Flask 开发 Web 应用的工作流程。 这不是使用Flask 开发应用的唯一选择, 你可以把这种选择作为一种推荐方式。
大部分软件开发类图书都使用短而精的示例代码, 孤立地演示所介绍技术的功能,让读者自己去思考如何使用胶水代码把这些不同的功能组合起来, 开发出完整可用
的应用。
本书采用了完全不同的方式。 本书中的示例代码都摘自同一个应用, 开始时很简单, 后续各章逐渐进行扩展。 起初只有几行代码, 最后将变成功能完善的博客和社交网络应用。
要想更好地理解本书内容, 你需要具备一定的 Python 编程经验。 阅读本书, 并不要求必须了解 Flask 的相关知识, 但最好理解 Python 的一些概念(比如包、 模块、 函数、装饰器和面向对象编程) , 熟悉异常处理, 知道如何从栈跟踪中分析问题, 这将有助于你
理解本书。
学习本书示例代码时, 你的大部分时间都将在命令行中操作, 因此, 你应该能够熟练使用、 自己操作系统中的命令行。
现代 Web 应用都不可避免地需要使用 HTML、CSS 和JavaScript, 本书开发的示Web3.0 应用开发实战(从 Web2.0 到 Web3.0)例应用也用到了这些技术, 但本书没有对其进行详细介绍, 也没有说明如何使用。 如果你想开发完整的应用, 且无法向精通客户端技术的开发者寻求帮助, 那就需要对这些语
言有一定程度的了解。
本书配套的代码是开源的, 作者把它同时上传到 GitHub 和百度云盘。 由于国内部分区域或网络服务商的原因, 访问 GitHub 有时并不是很理想(打不开或下载很慢) 。如果你可以通过修改本地 Hosts 文件顺利访问 GitHub, 则可以从 GitHub 上下载 ZIP或 TAR 格式的源码; 当然, 也可以从百度云盘直接下载源代码。 本书并不强调 Git 的使用, 即使你不会配置网络也不影响代码运行。需要说明的是, 本书并不是完整且详尽的 Flask 框架手册。 虽然本书介绍了 Flask的大部分功能, 但你还需要配合使用 Flask 官方文档(http://flask. pocoo.org/) 。
本书在编写过程中, 参考了一些文献资料, 在此向相关作者表示感谢。 限于作者水平, 本书难免存在不足和疏漏之处, 敬请各位读者批评指正。
作 者
2023 年9 月