Flask请求扩展

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Flask的请求扩展类似于django的中间件,在请求进入视图函数和离开视图函数之后执行的一些功能,总共有7

1.before_request:请求来之前执行(可以加多个,从上往下执行,等同于中间件的process_request)
2.after_request:请求走之后(可以加多个,从下往上执行,等同于以中间件的process_response)
3.before_first_request:项目运行后的第一次会执行它(初始化的工工作)
4.teardown_request:出错也会走,记录日志
5.errorhandler(404):状态码是响应的,就会触发它的执行
#上面五个使用方法大致相似,与下面2个使用方法不一样
@app.before_request
def before():
#取出访问者的ip,记录一下
print(request.path)
print('我执行了')
return '回去' # 直接回去了,等同于django中return Response对象


6.template_global() # 全局函数,在模板中直接使用
@app.template_global()
def sb(a1, a2):
return a1 + a2

#模板中使用
{{sb(1,2)}}

7.template_filter() # 全局过滤器,在模板中直接使用
@app.template_filter()
def db(a1,a2,a3,a4):
return a1 + 100+a2+a3+a4
#模板中使用
{{ 1|db(2,3)}}