Python-Flask-请求钩子
"""
在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如:
·在请求开始时,建立数据库连接
·在请求开始时,根据需求进行权限校验
·在请求结束时,制指定数据的交互格式
为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。
请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子
·before_first_request
在处理第一个请求前执行
·before_request
在每次请求前执行
如果在某修饰的函数中返回了一个响应,视图函数将不再被调用
·after_request
如果没有抛出错误,在每次请求后执行
接受一个参数:视图函数做出的响应
在此函数中可以对响应值在返回之前做最后一步修改处理
需要将参数中的响应在此参数中进行返回
·teardown_request
在每次请求后执行
接受一个参数:错误信息,如果有,相关错误抛出
"""
from urllib import response
from flask import Flask
app = Flask(__name__)
@app.before_first_request
def before_first_request():
print('before_first_request')
@app.before_request
def before_request():
print('before_request')
#可以对一些非法的请求进行阻止
@app.after_request
def after_request(response):
print('after_request')
return response #这里返回的response就是下面视图函数返回的响应
#在请求之后会调用,并且函数里面接受一个参数:响应。还需要将响应进行返回
@app.teardown_request
def teardown_requst(error):
print('teardown_request')
# 在请求之后会执行,如果请求的函数报有异常,会把具体异常传入到此函数
@app.route('/')
def index():
return 'index'
if __name__ == '__main__':
app.run(debug=True)