New in version 0.9.Flask 的设计思路之一是代码有两种不同的运行“状态”。一种是“安装”状态,从 Flask 对象被实例化后开始,到第一个请求到来之前。在这种状态下,以下规则 成立:可以安全地修改应用对象。还没有请求需要处理。没有应用对象的引用,因此无法修改应用对象。相反,在请求处理时,以下规则成立:当请求活动时,本地环境对象 ( flask.
New in version 0.7.Flask 0.7 版本引入了可插拨视图。可插拨视图基于使用类来代替函数,其灵感来自于 Django 的通用视图。可插拨视图的主要用途是用可定制的、可插拨的视图来替代部分实现。基本原理假设有一个函数用于从数据库中载入一个对象列表并在模板中渲染:@app.route('/users/')def show_users(page): users = User.query.
New in version 0.6.Flask 自 0.6 版本开始在内部支持信号。信号功能由优秀的 blinker 库提供支持, 如果没有安装该库就无法使用信号功能,但不影响其他功能。什么是信号?当核心框架的其他地方或另一个 Flask 扩展中发生动作时,信号通过发送 通知来帮助你解耦应用。简言之,信号允许某个发送者通知接收者有事情发生了。
New in version 0.3.应用总是需要一定的配置的。根据应用环境不同,会需要不同的配置。比如开关调试 模式、设置密钥以及其他依赖于环境的东西。Flask 的设计思路是在应用开始时载入配置。你可以在代码中直接硬编码写入配置,对于 许多小应用来说这不一定是一件坏事,但是还有更好的方法。不管你使用何种方式载入配置,都可以使用 Flask 的 config 属性来操作配置的值。
New in version 0.3.应用出错,服务器出错。或早或晚,你会遇到产品出错。即使你的代码是百分百正确, 还是会时常看见出错。为什么?因为其他相关东西会出错。以下是一些在代码完全正确的条件下服务器出错的情况:客户端已经中断了请求,但应用还在读取数据。数据库已经过载,无法处理查询。文件系统没有空间。硬盘完蛋了。后台服务过载。使用的库出现程序错误。