- 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 应用程序开始处理传入请求时都会发出此事件类的对象。该对象有一个请求属性,它是 WSGI 环境字典提供的请求对象。
ContextFound - 应用程序的路由器遍历所有路由并找到与 URL 模式的适当匹配。这是 ContextFound 类的对象被实例化的时候。
BeforeTraversal - 在 Pyramid 路由器尝试查找路由对象之后但在执行任何遍历或视图代码之前,此类的实例作为事件发出。
NewResponse - 顾名思义,只要任何可调用的Pyramid视图返回响应,就会引发此事件。该对象具有请求和响应属性。
BeforeRender - 这种类型的对象在调用渲染器之前作为事件传输。该事件的订阅者函数可以访问应用程序的全局数据(以字典对象的形式),并且可以修改一个或多个键的值。