app.wsgi_app
是Flask实例的入口,Flask从这里接受数据,返回处理后的数据。
1 | class _RequestContext(object): |
目前只看了dispatch_request
后面的路径,session等都是在这里开始的。
大致的路径是:
- 获取环境变量;
- 根据环境变量创建
_RequestContext
实例; - 根据环境变量创建
MapAdapter
实例;
4._request_ctx_stack
顶部增加一个_RequestContext
实例; - 执行
preprocess_request
,before_request
等函数在这里面被执行; - 如果
preprocess_request
没有返回值,则开始调用dispatch_request
,进行正常的path解析和view_func调用等; - 而如果有返回值,则把该返回值进行返回, 而不再进行正常的
dispatch_request
; _request_ctx_stac
k顶部移除_RequestContext
实例。