99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Pyramid 事件

2023-03-30 17:42 更新

一個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 模塊中可用。它們被列舉如下

  • ApplicationCreated – 當(dāng)Config.make_wsgi_app()方法被調(diào)用以返回WSGI應(yīng)用程序?qū)ο髸r,該事件就會被傳送。
  • NewRequest – 每當(dāng)Pyramid應(yīng)用程序開始處理一個傳入的請求時,就會發(fā)出這個事件類的一個對象。這個對象有一個請求屬性,是由WSGI環(huán)境字典提供的請求對象。
  • ContextFound – 應(yīng)用程序的路由器會遍歷所有的路由,并找到與URL模式相匹配的合適對象。這時ContextFound類的對象被實例化。
  • BeforeTraversal – 這個類的實例在Pyramid路由器試圖找到路由對象后,但在執(zhí)行任何遍歷或視圖代碼之前,作為一個事件被排放出來。
  • NewResponse – 顧名思義,當(dāng)任何Pyramid視圖的可調(diào)用性返回一個響應(yīng)時,這個事件就會被引發(fā)。這個對象有請求和響應(yīng)屬性。
  • BeforeRender – 這種類型的對象在渲染器被調(diào)用之前作為一個事件被傳送。該事件的訂閱函數(shù)可以訪問應(yīng)用程序的全局?jǐn)?shù)據(jù)(以dict對象的形式),并可以修改一個或多個鍵的值。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號