加载配置:
app = Flask(__name__)
app.config.from_object(__name__)
from_object()
会识别给出的对象(如果是一个字符串,它 会自动导入这个模块),然后查找所有已定义的大写变量。在我们这个例子里,配置 在几行代码前。你也可以把它移动到一个单独的文件中。
app.config.from_envvar('FLASKR_SETTINGS', silent=True)
silent参数是为了告诉Flask不要报错,即使没有设置 环境变量
===================
从 _future_ 中的import内容要在所以import的最前面
from __future__ import with_statement from contextlib import closing
===================
from flask import g
@app.before_request def before_request(): g.db = connect_db() @app.after_request def after_request(response): g.db.close() return response
用 before_request()
装饰的函数在每次请求之前 被调用,它没有参数。用 after_request()
装饰的函数是在每 次请求结束后被调用,而且它需要传入response。这类函数必须返回同一个response 对象或者一个不同的response对象
我们把当前的数据库连接保存在一个特殊的对象 g
里面,这个对象 flask已经为我们提供了。这个对象只能用来为一个请求保存信息,每一个函数都可以 访问这个对象。不要用其他的对象来保存信息,因为在多线程的环境下会无法工作。 g
对象是一个特殊的对象,它会在后台做一些魔术来确保它能够跟我 们预想的一样执行
===========================