flask系列2-请求生命周期

请求生命周期

-请求上下文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当次全局变量(只在当次请求有效)

你可能感兴趣的:(flask系列2-请求生命周期)