原文地址:https://dormousehole.readthedocs.io/en/stable/foreword.html
Flask 版本: 1.0
请在使用 Flask 前阅读。希望本文能回答你一些关于 Flask 的用途和目标以及 Flask 适用情境的问题。
1. “微”是什么意思?
“微”并不代表整个应用只能塞在一个 Python 文件内,当然塞在单一文件内也没有问题。“微”也不代表 Flask 功能不强。微框架中的“微”字表示 Flask 的目标是保持核心简单而又可扩展。Flask 不会替你做出许多决定,比如选用何种数据库。类似的决定,如使用何种模板引擎,是非常容易改变的。Flask 可以变成你任何想要的东西,一切恰到好处,由你做主。
缺省情况下,Flask 不包含数据库抽象层、表单验证或者其他已有的库可以处理的东西。然而,Flask 通过扩展为你的应用添加这些功能,就如同这些功能是 Flask 生的一样。 大量的扩展用以支持数据库整合、表单验证、上传处理和各种开放验证等等。Flask 可能是 “微小”的,但它已经为满足您的各种生产需要做出了充足的准备。
2. 配置与惯例
刚起步的时候 Flask 有许多带有合理缺省值的配置值和惯例。按照惯例,模板和静态文件存放在应用的 Python 源代码树的子目录中,名称分别为 templates
和 static
。惯例是可以改变的,但是你大可不必改变, 尤其是刚起步的时候。
3. 可持续发展
一旦你开始使用 Flask ,你会发现有各种各样的扩展可供使用。Flask 核心开发组会审查扩展,并保证通过检验的扩展可以在最新版本的 Flask 中可用。
随着你的代码库日益壮大,你可以自由地决定设计目标。Flask 会一直提供一个非常简约而优秀的胶合层,就像 Python 语言一样。你可以自由地使用 SQLAlchemy 执行高级模式,或者使用其他数据库工具,亦可引入非关系数据模型,甚至还可以利用用于 Python 网络接口 WSGI 的非框架工具。
Flask 包含许多可以自定义其行为的钩子。考虑到你的定制需求,Flask 的类专为继承而打造。如果对这一点感兴趣,请阅读大型应用一节。如果对 Flask 的设计原则感兴趣,请移步 Flask 的设计思路 。