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