Flask 信號(hào)

2021-08-10 17:49 更新
0.6 新版功能.

從 Flask 0.6 開始, Flask 集成了信號(hào)支持。這個(gè)支持由 blinker 庫(kù)提供, 并且當(dāng)它不可用時(shí)會(huì)優(yōu)雅地退回。

什么是信號(hào)?信號(hào)通過(guò)發(fā)送發(fā)生在核心框架的其它地方或 Flask 擴(kuò)展的動(dòng)作 時(shí)的通知來(lái)幫助你解耦應(yīng)用。簡(jiǎn)而言之,信號(hào)允許特定的發(fā)送端通知訂閱者發(fā) 生了什么。

Flask 提供了幾個(gè)信號(hào),其它的擴(kuò)展可能會(huì)提供更多。另外,請(qǐng)注意信號(hào)傾向于 通知訂閱者,而不應(yīng)該鼓勵(lì)訂閱者修改數(shù)據(jù)。你會(huì)注意到,信號(hào)似乎和一些內(nèi)置的 裝飾器做同樣的事情(例如: request_startedbefore_request() 十分相似)。然而它們工作的方式是有 差異的。譬如核心的 before_request() 處理程序以特定的順 序執(zhí)行,并且可以在返回響應(yīng)之前放棄請(qǐng)求。相比之下,所有的信號(hào)處理器執(zhí)行的 順序沒有定義,并且不修改任何數(shù)據(jù)。

信號(hào)之于其它處理器最大的優(yōu)勢(shì)是你可以在一秒鐘的不同的時(shí)段上安全地訂閱。譬 如這些臨時(shí)的訂閱對(duì)單元測(cè)試很有用。比如說(shuō)你想要知道哪個(gè)模板被作為請(qǐng)求的一 部分渲染:信號(hào)允許你完全地了解這些。


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)