
- Python Pyramid 教程
- Python Pyramid - 首頁
- Python Pyramid - 概述
- Pyramid - 環境搭建
- Python Pyramid - Hello World
- Pyramid - 應用配置
- Python Pyramid - URL 路由
- Python Pyramid - 檢視配置
- Python Pyramid - 路由字首
- Python Pyramid - 模板
- Pyramid - HTML 表單模板
- Python Pyramid - 靜態資源
- Python Pyramid - 請求物件
- Python Pyramid - 響應物件
- Python Pyramid - 會話
- Python Pyramid - 事件
- Python Pyramid - 訊息閃現
- Pyramid - 使用 SQLAlchemy
- Python Pyramid - Cookiecutter
- Python Pyramid - 建立專案
- Python Pyramid - 專案結構
- Python Pyramid - 包結構
- 手動建立專案
- 命令列 Pyramid
- Python Pyramid - 測試
- Python Pyramid - 日誌
- Python Pyramid - 安全性
- Python Pyramid - 部署
- Python Pyramid 有用資源
- Python Pyramid - 快速指南
- Python Pyramid - 有用資源
- Python Pyramid - 討論
Python Pyramid - 事件
Pyramid 應用在其生命週期中會發出各種事件。雖然這些事件通常不需要使用,但是透過正確處理這些事件可以執行稍微高階的操作。
只有當您使用訂閱者函式註冊 Pyramid 框架廣播的事件時,該事件才可用。發出的事件必須用作訂閱者函式的引數。
def mysubscriber(event): print("new request")
但是,只有當使用add_subscriber()方法將其新增到應用程式的配置中時,訂閱者函式才能執行,如下所示:
在下面的程式碼片段中,應用程式被配置為在發出NewRequest物件時呼叫訂閱者函式。
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")
與裝飾器檢視配置一樣,這裡也必須執行config.scan()才能使裝飾器生效。
如前所述,Pyramid 應用發出各種事件型別。這些事件類可在pyramid.event模組中找到。它們列在下面:
ApplicationCreated - 當呼叫 Configurator 類的 config.make_wsgi_app() 方法以返回 WSGI 應用程式物件時,就會傳輸此事件。
NewRequest - 每當 Pyramid 應用程式開始處理傳入請求時,都會發出此事件類的一個物件。此物件具有一個request屬性,該屬性是由 WSGI 環境字典提供的請求物件。
ContextFound - 應用程式的路由器遍歷所有路由並找到與 URL 模式的適當匹配。這就是 ContextFound 類物件例項化的時候。
BeforeTraversal - 在 Pyramid 路由器嘗試查詢路由物件之後但執行任何遍歷或檢視程式碼之前,會發出此類的例項作為事件。
NewResponse - 正如名稱所示,每當任何 Pyramid 檢視可呼叫物件返回響應時,都會引發此事件。此物件具有request和response屬性。
BeforeRender - 在呼叫渲染器之前,會將此型別的物件作為事件傳輸。此事件的訂閱者函式可以訪問應用程式的全域性資料(以 dict 物件的形式),並可以修改一個或多個鍵的值。