一個Pyramid應(yīng)用程序在其運行過程中會發(fā)出各種事件。盡管這些事件不需要正常使用,但通過正確處理這些事件可以進(jìn)行一些高級操作。
一個由Pyramid框架廣播的事件只有在你用一個訂閱函數(shù)注冊后才可以使用。發(fā)出的事件必須被用作 訂閱者 函數(shù)的參數(shù)。
def mysubscriber(event):
print("new request")
然而,只有當(dāng)它在 add_subscriber() 方法的幫助下被添加到應(yīng)用程序的配置中時,訂戶函數(shù)才會開始運作,如下所示。
在下面的片段中,應(yīng)用程序被配置為當(dāng)它發(fā)出 NewRequest 對象時,訂閱者函數(shù)被調(diào)用。
from pyramid.events import NewRequest
config.add_subscriber(mysubscriber, NewRequest)
還有一個用于配置事件的@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)用程序會發(fā)出各種事件類型。這些事件類在 pyramid.event 模塊中可用。它們被列舉如下
更多建議: