首页 > 其他 > 详细

Flask详解(下篇)

时间:2019-07-11 19:40:36      阅读:98      评论:0      收藏:0      [点我收藏+]

一 上下文管理

当前请求到来时Flask处理的流程图:

技术分享图片

当一个请求到来时:

请求到来之后uwsgi会触发app的__call__方法, 由__call__方法再次调用wsgi_app方法

技术分享图片

 首先将请求相关+空session封装到一个RequestContext对象中 即 ctx # self是app对象, environ请求相关的原始数据,含有self.request

技术分享图片

通过ctx.push()将ctx交给LocalStack对象,再由LocakStack将ctx添加到Local中,local结构:

__storage__={
        1231:{stack:[ctx,]},  # {线程id:{"stack":[]}}
        1232:{stack:[ctx,]}
}

 _request_ctx_stack.top取出stack中最后一个数据并使用getattr(obj,name)的方式返回request或者seession中的数据

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

Flask详解(下篇)

原文:https://www.cnblogs.com/harryblog/p/11171831.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!