| before_first_request | 第一次请求之前,初始化一次后就会失效. |
| before_request | 每次请求之前 |
| after_request | 没有异常情况下,每次请求之后 |
def get_g():
return g.string
# 钩子函数 before_first_request
@app.before_first_request
def bf_first_request():
# 设置g
g.string = 'before first request'
# before_request每次请求之前
@app.before_request
def bf_request():
g.string = 'before request'
# after_request 每次请求之后,需要有一个参数,代表响应
@app.after_request
def af_request(param):
param.set_cookie('username', 'lisi')
return param
# teardown_request 每次请求之后执行,不管是否异常
@app.teardown_request
def td_request(exception=None):
print('始终都会执行')
if __name__ == '__main__':
app.run(threaded=True, debug=False)
| before_request | 每次请求之前 |
| after_request | 没有异常情况下,每次请求之后 |
| teardown_request | 每次请求之后,无论是否有异常,常用于关闭数据库连接 |
from flask import Flask, g
app = Flask(__name__)
@app.route('/g/')
def get_g():
return g.string
# 钩子函数 before_first_request
@app.before_first_request
def bf_first_request():
# 设置g
g.string = 'before first request'
# before_request每次请求之前
@app.before_request
def bf_request():
g.string = 'before request'
# after_request 每次请求之后,需要有一个参数,代表响应
@app.after_request
def af_request(param):
param.set_cookie('username', 'lisi')
return param
# teardown_request 每次请求之后执行,不管是否异常
@app.teardown_request
def td_request(exception=None):
print('始终都会执行')
但是要注意一点,运行teardown时,要把debug= False
if __name__ == '__main__':
app.run(threaded=True, debug=False)