请在使用 Flask 前阅读。希望本文能回答你一些关于 Flask 的用途、目标以及适用情境的疑 问。
“微”(Micro) 不是指要把整个 Web 应用塞进单个 Python 文件(虽然确实可以这样做), 也不意味着 Flask 在功能上有所欠缺。微框架中的“微”是指 Flask 旨在保持核心简单而易于 扩展。Flask 过多限制你的决策——比如要用什么数据库。而那些 Flask 默认选定的,比如模板 引擎,会很容易替换。除此之外的一切,都由你自己掌控。如此,Flask 可与你珠联璧合。
默认情况下,Flask 不包含数据库抽象层、表单验证,或是任何其他库可以胜任的功能。作为替 代,Flask 支持扩展来给应用添加功能,就如同是 Flask 本身实现的一样。众多的扩展提供了 数据库集成、表单验证、上传处理、各种各样的开发认证技术等功能。Flask 或许是“微小”的, 但它却是为了在需求繁杂的生产环境中投入使用而准备的。
Flask 的诸多配置选项在初始状况下都有一个合理的默认值,并会遵循一些惯例。例如,按照 惯例,模板和静态文件会分别存储在应用 Python 源代码树下的子目录 templates 和 static 里。虽然可以调整这项配置,但你通常不必这么做,尤其是在入门的时候。
当你配置好并运行 Flask,你会发现社区中有许多扩展可以集成到生产环境项目中。Flask 核心 团队会审阅这些扩展,确保经过检验的扩展仍能适用于未来版本。
随着你的代码库逐渐壮大,你仍可为项目量身打造设计决策。Flask 会继续尽可能提供的一个非 常简单的胶水层,这也是 Python 应该提供的东西。你可以在SQLAlchemy 或其它数据库工具中 实现更高级的模式,酌情引入非关系型数据持久化,或是从框架无关的 WSGI (Python 的 Web 接口)工具中获益。
Flask 里有许多 :term:`钩子<Hook>` 用于自定义行为。若是需要更深层次的定制,可以直接继承 Flask 类。如果你对此有兴趣,请阅读 :ref:`becomingbig` 章节。如果你好奇 Flask 的 设计原则,请阅读 :ref:`design` 章节。
继续阅读 :ref:`installation` 、 :ref:`quickstart` 、或 :ref:`advanced-foreword`.