Flask 應(yīng)用上下文

2021-08-10 17:54 更新
0.9 新版功能.

Flask 背后的設(shè)計理念之一就是,代碼在執(zhí)行時會處于兩種不同的“狀態(tài)”(states)。 當(dāng) Flask 對象被實例化后在模塊層次上應(yīng)用便開始隱式地處于應(yīng)用配置狀 態(tài)。一直到第一個請求還是到達這種狀態(tài)才隱式地結(jié)束。當(dāng)應(yīng)用處于這個狀態(tài)的時候 ,你可以認為下面的假設(shè)是成立的:

  • 程序員可以安全地修改應(yīng)用對象
  • 目前還沒有處理任何請求
  • 你必須得有一個指向應(yīng)用對象的引用來修改它。不會有某個神奇的代理變量指向 你剛創(chuàng)建的或者正在修改的應(yīng)用對象的

相反,到了第二個狀態(tài),在處理請求時,有一些其它的規(guī)則:

  • 當(dāng)一個請求激活時,上下文的本地對象( flask.request 和其它對象等) 指向當(dāng)前的請求
  • 你可以在任何時間里使用任何代碼與這些對象通信

這里有一個第三種情況,有一點點差異。有時,你正在用類似請求處理時方式來 與應(yīng)用交互,即使并沒有活動的請求。想象一下你用交互式 Python shell 與應(yīng)用 交互的情況,或是一個命令行應(yīng)用的情況。

current_app 上下文本地變量就是應(yīng)用上下文驅(qū)動的。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號