Python Pyramid 事件

Python Pyramid 事件

Pyramid应用程序在其生命周期中会发出各种事件。虽然这些事件通常不需要使用完全,但通过正确处理这些事件可以执行稍微高级的操作。

由Pyramid框架广播的事件只有在您使用一个订阅函数进行注册时才能使用。发出的事件必须作为 subscriber 函数的参数使用。

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视图可调用返回响应时,都会引发此事件。此对象具有请求和响应属性。

  • BeforeRender - 在渲染器被调用之前,将以事件的形式传输此类型的对象。订阅器函数可以访问应用程序的全局数据(以dict对象的形式)并可以修改一个或多个键的值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程