【14】Flask请求上下文

时间:2020-07-14 00:56:17   收藏:0   阅读:74

在分析上下问之前,要做好一个心理准备,因为设计到的代码会很多,不懂的要跟着文档自己去翻阅源码。

首先把涉及到的主要的类或者设计到的py页面展示如下图。下面会以对应类或者页面去讲解flask源码

技术分享图片

之前已经论述过了,每次请求过来都会触发app(),所以会触发FLask类的__call__方法,__call__方法会触发Flask类的wsgi_app()方法。然后所有的请求的整个生命周期都在整个wsgi_app()里面。

根据上图类和序号来完成分析流程。

1 首先分析请求上下文对象(ctx)创立

1.0中的ctx就是RequestContext对象,请求上下文对象ctx中初始化所有请求所有内容,并且其内部封装着Request对象,Request对象把请求过来的信息格式化并且储存起来。

2 把请求对象(ctx)添加到local中(入栈)

3 找到视图函数并且使用导入request对象

5 请求结束时从Local中移除上下文对象(出栈)

经过了添加请求上下文到Localstorage中,以及视图函数的运行返回相应对象,现在进行把请求上下文对象从storage中移除。

总结:

技术分享图片

原文:https://www.cnblogs.com/remixnameless/p/13296733.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!