flask中间件

flask中有很多请求中间件也叫请求过滤下面的代码是所有中间件的汇总

点击查看代码
from flask import Flask,render_template

app = Flask(__name__)

@app.before_first_request
def before_first():
    print('服务器第一次接受请求的时候执行')

@app.before_request  # before_request里面不能有返回值,内部维护了一个列表将所有的before_request append进一个列表里,然后依次执行执行
def before_request():
    print('每次视图函数执行之前执行的')
    # 如果有return 后面的视图函数就不执行了
    # return '提前结束'

@app.after_request# 内部也是维护了一个列表,但是在底层源码里进行了依次reverse反转,所以执行顺序相反
def after_request(resp):
    print('每次视图函数执行之后执行')
    return resp # 这个返回值就是视图函数的返回值(response)

@app.teardown_request
def teardown_request(resp):
    print('请求结束的时候执行')

# 当任何一个函数出现错误的时候直接调用
@app.errorhandler(500)
def error_server(error):
    print(error)
    return render_template('500.html')

@app.route('/set')
def hello_world():
    1/0
    return 'hello world'

@app.route('/get')
def hello_world2():
    return '请求钩子结束'

if __name__ == '__main__':
    app.run()
posted @ 2021-11-14 15:08  libonizhenshuai  阅读(158)  评论(0)    收藏  举报