Flask 激發(fā)請求發(fā)送前后的調(diào)用

2021-08-23 18:41 更新

僅僅創(chuàng)建一個請求上下文,您仍然不能運行請求發(fā)送前通常會運行的代碼。 如果您在將連接數(shù)據(jù)庫的任務(wù)分配給發(fā)送請求前的函數(shù)調(diào)用,或者在當(dāng)前 用戶并沒有被儲存在 ?g? 對象里等等情況下,您可能無法 訪問到數(shù)據(jù)庫。

您可以很容易的自己完成這件事,僅僅手動調(diào)用 ?preprocess_request()? 函數(shù)即可:

>>> ctx = app.test_request_context()
>>> ctx.push()
>>> app.preprocess_request()

請注意, ?preprocess_request()? 函數(shù)可能會返回 一個響應(yīng)對象。這時,忽略它就好了。

要關(guān)閉一個請求,您需要在請求后的調(diào)用函數(shù)(由 ?process_response()? 函數(shù)激發(fā))運行之前耍一些小小的把戲:

>>> app.process_response(app.response_class())
<Response 0 bytes [200 OK]>
>>> ctx.pop()

被注冊為 ?teardown_request()? 的函數(shù)將會在 上下文環(huán)境出棧之后自動執(zhí)行。所以這是用來銷毀請求上下文(如數(shù)據(jù)庫 連接等)資源的最佳地點。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號