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