这里介绍flask的5种请求狗子的用法和使用场景。
from flask import Flask, request, redirect app=Flask(__name__) @app.before_first_request #执行处理前端的第一个请求时会执行这里的代码。 def abb(): """代码段""" return "注册一个函数,在处理第一个请求前运行这里面的代码" @app.before_request #执行处理前端每个请求时会处理这里面的代码,注意,before_request不能与before_first_request在一个实例里使用 def abb(): """代码段""" return "注册一个函数,在处理每个请求前运行这里面的代码" @app.after_request #如果没有未处理的异常抛出,会在每个请求后结束运行 def abb(): """代码段""" return "如果没有未处理的异常的话,会在每个请求处理完后才运行这个处理函数" @app.teardown_request #即使有未处理的异常抛出,会在处理了请求后在运行这个处理函数的代码,如果报错,会传入报错对象作为参数到注册的函数中 def abb(): """代码段""" return "" @app.after_this_request #处理了请求结束后会运行这个处理函数 def abb(): """代码段""" return "每个请求结束后运行这个处理函数" if __name__=="__main__": app.run(host="127.0.0.1")
这些钩子使用起来和app.route()装饰器基本相同,每个钩子可以注册多个处理函数,函数名称不能并不是必须和钩子名称相同,这几个钩子的使用场景在下方会有详解
before_first_request:一般是放在我们进行程序时的初始化操作,比如创建数据库表,添加管理等
before_request:在请求后执行,比如记录用户的最后登陆时间等
。。。其他场景就不赘述了,通过这些请求钩子能够很方便的帮我们实现很多业务上的场景