Flask中请求钩子的介绍和代码(十)

请求钩子函数的构造

from flask import Flask, session, request, url_for
app = Flask(__name__, template_folder='templates', static_url_path='/static')
app.secret_key = "sdsfdsgdfgdfgfh"


@app.route('/set_session')
def set_session():
    session['name'] = '小伙子'
    print('大傻逼')
    return 'session设置成功'


@app.route('/get_session')
def get_session():
    session_name = session.get('name')
    return session_name


@app.route('/delete_session')
def delete_session():
    del session['name']
    return 'session删除成功'


@app.before_first_request
def handle_before_first_request():
    """在第一次请求处理之前先被执行"""
    print('handle_before_first_request被执行')


@app.before_request
def handle_before_request():
    """在每次请求之前都会被执行"""
    print('handle_before_request被执行')


@app.after_request
def handle_after_request(response):
    """在每次请求(视图函数处理)之后都被执行,前提是视图函数是没有出现异常"""
    print('handle_after_request 被执行')
    return response


@app.teardown_request
def handle_teardown_request(response):
    """在每次请求(视图函数处理)之后都被执行,不管视图函数有没有异常都会执行"""
    print(request.path)#打印请求路径
    path = request.path
    if path == url_for('set_session'): 
        #可以将解析的路径放到列表中,看路径是否在列表中,否则不进行相应的操作
        print('在请求钩子中判断的视图函数为:set_session')
    print('handle_teardown_request被执行')
    return response


if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)

请求set_session之后的结果

发布了21 篇原创文章 · 获赞 0 · 访问量 126

猜你喜欢

转载自blog.csdn.net/qq_41706810/article/details/105737903