请求钩子函数的构造
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)