一個(gè)Pyramid應(yīng)用程序在其運(yùn)行過(guò)程中會(huì)發(fā)出各種事件。盡管這些事件不需要正常使用,但通過(guò)正確處理這些事件可以進(jìn)行一些高級(jí)操作。
一個(gè)由Pyramid框架廣播的事件只有在你用一個(gè)訂閱函數(shù)注冊(cè)后才可以使用。發(fā)出的事件必須被用作 訂閱者 函數(shù)的參數(shù)。
def mysubscriber(event):
print("new request")
然而,只有當(dāng)它在 add_subscriber() 方法的幫助下被添加到應(yīng)用程序的配置中時(shí),訂戶函數(shù)才會(huì)開(kāi)始運(yùn)作,如下所示。
在下面的片段中,應(yīng)用程序被配置為當(dāng)它發(fā)出 NewRequest 對(duì)象時(shí),訂閱者函數(shù)被調(diào)用。
from pyramid.events import NewRequest
config.add_subscriber(mysubscriber, NewRequest)
還有一個(gè)用于配置事件的@subscriber()裝飾器。
from pyramid.events import NewRequest
from pyramid.events import subscriber
@subscriber(NewRequest)
def mysubscriber(event):
print ("new request")
與裝飾性視圖配置一樣,這里也必須執(zhí)行config.scan()才能使裝飾器有效。
如前所述,Pyramid應(yīng)用程序會(huì)發(fā)出各種事件類型。這些事件類在 pyramid.event 模塊中可用。它們被列舉如下
更多建議: