本文使用flask 0.5 版本
request context
request
gsession
request 指的是每次http
請求發生時,wsgi server
(比如gunicorn)呼叫flask.__call__()
之後,在flask
物件內部建立的request
物件;
下面通過原始碼了解一下flask如何實現這兩種context:
# **摘選自flask 0.5 中的ctx.py檔案, 進行了部分刪減
class _requestcontext(object):
self.g = _requestglobals()
flask使用_requestcontext
的**如下:
class flask(object):
def request_context(self, environ):
return _requestcontext(self, environ)
在flask
類中,每次請求都會呼叫這個request_context
函式。這個函式則會建立乙個_requestcontext
物件。
request_class = request # request 是乙個類,定義如下:
class request(requestbase):
...
到這裡想必已經很清楚了:
flask
每響應乙個http請求,就會建立乙個request
物件,這個request物件對應的上下文,就是request context
Flask中的上下文
上下文 相當於乙個容器,儲存了 flask 程式執行過程中的一些資訊。flask中有兩種上下文,請求上下文和應用上下文 在 flask 中,可以直接在檢視函式中使用 request 這個物件進行獲取相關資料,而 request 就是請求上下文的物件,儲存了當前本次請求的相關資料,請求上下文物件有 r...
Flask 的上下文物件
上下文 相當於乙個容器,儲存了flask程式執行過程中的一些資訊。flask中有兩種上下文,請求上下文和應用上下文。request和session都屬於請求上下文物件。request 封裝了http請求的內容,針對的是http請求。舉例 user request.args.get user 獲取的是...
flask之請求上下文
第一階段 將ctx request,session 放到local物件上 第二階段 檢視函式匯入 request session request.method localproxy物件.method,執行getattr方法,getattr self.get current object name s...