zoukankan      html  css  js  c++  java
  • Flask信号流程

      首先先我们来看看Flask里面的信号是什么样的,我们可以找到一个叫signals.py的文件

      

      这里面是所有定义了的后面请求流程中会用到的信号

    二、哪些地方用到了信号

      

      1、请求app上下文时执行的,在执行ctx.push()时,执行了RequestContext类里的push方法

        

        - 接着app_ctx.push(),执行的是AppContext类里的push,这里用到了appcontext_pushed.send(self.app)这一信号:

        

      2、full_dispatch_request()里用到了request_started.send(self)这一信号,在请求到来时执行:

        

      3、我们在进行模板渲染时,render_template里面返回的_render()里面使用了before_render_template和template_rendered两个信号:

            

      4、接着,在finalize_request(rv)里使用了request_finished.send(self, response=response)这一信号,在请求结束后执行:

        

      5、在handle_exception(e)里用到了got_request_exception.send(self, exception=e)这一信号,在请求出现异常时执行:

          

      6、在最后的ctx.auto_pop(error)里执行RequestContext的pop方法,

        

        这里面又调用了self.app.do_teardown_request(exc),在这里使用了request_tearing_down.send(self, exc=exc)这一信号,请求执行完毕后自动执行(无论成功与否):

        

      7、同样在RequestContext的pop方法里,这里执行了app_ctx.pop(exc),调用了AppContext里的pop方法:

        

        这里使用了appcontext_popped.send(self.app)这一信号,在请求上下文执行完毕后自动执行的(无论成功与否):

        

  • 相关阅读:
    golang mongo-driver filter 构建--bson和golang基础类型
    ieda 修改选了files open in assoasiated applications
    golang 轻量实用的http.Request 参数解析库 paramParse
    scrapyd spiderkeeper docker部署
    python Scrapy google trends
    shell 删除代码中的注释
    php中文转阿拉伯数字
    php调用oracle带有out参数的存储过程
    Mongodb 副本与分片 学习笔记
    Mongodb 特殊索引和集合 学习笔记
  • 原文地址:https://www.cnblogs.com/value-code/p/8658897.html
Copyright © 2011-2022 走看看