Flask 上下文如何工作

2021-08-23 18:39 更新

如果你研究 Flask WSGI 應用內部如何工作,你會找到和這非常相似的一段代碼:

def wsgi_app(self, environ):
    with self.request_context(environ):
        try:
            response = self.full_dispatch_request()
        except Exception, e:
            response = self.make_response(self.handle_exception(e))
        return response(environ, start_response)

?request_context()? 方法返回一個新的 ?RequestContext? 對象,并結合 with 聲明來綁定上下文。 從相同線程中被調用的一切,直到 with 聲明結束前,都可以訪問全局的請求 變量( ?flask.request? 和其它)。

請求上下文內部工作如同一個棧。棧頂是當前活動的請求。 ?push()? 把上下文添加到棧頂, ?pop()? 把它移出棧。在出棧時,應用的 ?teardown_request()? 函數(shù)也會被執(zhí)行。

另一件需要注意的事是,請求上下文被壓入棧時,并且沒有當前應用的應用上下文, 它會自動創(chuàng)建一個 應用上下文 。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號