美文网首页
Flask官方文档中的留言板项目解说之钩子函数(5)

Flask官方文档中的留言板项目解说之钩子函数(5)

作者: ArthurIsUsed | 来源:发表于2020-10-29 10:33 被阅读0次

    应用钩子函数

    通过装饰器为一个模块添加请求钩子, 对当前模块的请求进行额外的处理. 比如权限验证。

    应用钩子函数执行顺序如下:


    • before_first_request: 在对应用程序实例的第一个请求之前注册要运行的函数,只会执行一次。
    • before_request:在每个请求之前注册一个要运行的函数,每一次请求都会执行。用于打开数据库连接或获取当前登录的用户。
    • after_request: 在每个请求之后注册一个要运行的函数, 每次请求都会执行。 需要接收一个 Response类的对象作为参数,并返回一个新的Response对象,或者 直接返回接收到的Response对象。用于打开数据库连接或获取当前登录的用户。
    • teardown_request: 注册一个函数在每个请求的末尾运行,不管是否有异常,每次请求的最后都会执行。

    钩子函数扮演了工人的角色,将被装饰器装饰的函数存储到指定的容器( 字典或者列表 ),程序在处理请求的过程中会直接对容器进行操作,而不会对钩子函数进行调用。

    Blueprint钩子函数

    相比应用钩子函数,是在此基础上增加了三个钩子函数: blue.before_request、blue.after_request、blue.teardown_request。

    Blueprint 钩子函数同应用钩子函数一样,其内部应该也是对某一个容器进行更改。

    Blueprint钩子执行顺序如下:


    这个顺序可以理解为请求分应用部分和蓝图部分。当请求需要进入蓝图时,先要通过应用部分的认证,才能访问蓝图部分, 访问完蓝图之后, 要先从蓝图出来, 再经过应用返回响应。如果出错,先检查应用是否有错, 如果应用出错,则返回,否则返回蓝图的错误。

    相关文章

      网友评论

          本文标题:Flask官方文档中的留言板项目解说之钩子函数(5)

          本文链接:https://www.haomeiwen.com/subject/lcckvktx.html