W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
從 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_started 與 before_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)允許你完全地了解這些。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: