常用钩子函数
钩子函数是从收到请求到响应请求在整个链条中可以进行拦截的函数,钩子函数都是通过装饰器来注册的。常用的钩子函数如下。
before_first_request
在收到第一个请求之前执行,示例代码如下。
@app.before_first_request
def first_request():
print 'first time request')
before_request
在每次收到请求之前执行,示例代码如下。
@app.before_request
def before_request():
if not hasattr(g, 'user'):
setattr(g, 'user', 'xxxx')
teardown_appcontext
不管是否有异常,都会在每次请求之后执行,示例代码如下。
@app.teardown_appcontext
def teardown(exc=None):
if exc is None:
db.session.commit()
else:
db.session.rollback()