请求生命周期
-请求上下文ctx:
-request
-session
-应用上下文:app_ctx:
-g
-current_app
-ctx=RequestContext(envion)
-ctx对象中包装了一些东西:request对象,session
-LocalStack:自己定义的Local
_request_ctx_stack={'线程id':{'stack':[ctx,]}}
_app_ctx_stack={'线程id':{'stack':[app_ctx,]}}
-请求生命周期:
-请求来了
-生成ctx=里面放了request,和session
-生成app_ctx=里面放了g,current_app
-把他俩都放到全局变量中
-放进session
-执行before_request
-执行视图函数
-执行after_request
-执行save_session
-最终,不管是否报异常,都执行auto_pop(从全局变量中把ctx和app_ctx剔除)
-执行视图函数:
-LocalProxy
request.method
-g当次全局变量(只在当次请求有效)
网友评论