pyramid.registry

class Registry(package_name=pyramid.path.CALLER_PACKAGE, *args, **kw)[源代码]

注册表对象是 application registry .

框架本身使用它来执行URL映射,以查看可调用文件,并为其他各种框架职责提供服务。注册中心有自己的内部API,但这个API很少被Pyramid应用程序开发人员使用(它通常只被Pyramid框架和Pyramid加载项的开发人员使用)。但是,它有许多属性可能对应用程序代码中的应用程序开发人员有用,例如 settings ,这是一个包含应用程序部署设置的字典。

有关应用程序注册表的用途和用法的信息,请参阅 在 Pyramid .

注册表可以同时用作 pyramid.interfaces.IDict 作为Zope组件注册表。这两种存储配置的方法是独立的。应用程序倾向于将信息存储为键值,而加载项可能倾向于使用组件注册表来避免命名冲突,并提供更复杂的查找机制。

应用程序注册表通常访问为 request.registry 在应用程序代码中。当使用注册表处理请求时,应该将其视为冻结的和只读的。对其内部状态的任何更改都应该谨慎并考虑线程安全。

settings

字典就像 deployment settings 对象。参见 部署设置 以获取信息。此对象通常访问为 request.registry.settingsconfig.registry.settings 在典型的Pyramid应用程序中。

package_name

在 1.6 版本加入.

当注册表由 Configurator ,此属性将是 pyramid.config.Configurator.package_name .

此属性通常访问为 request.registry.package_nameconfig.registry.package_nameconfig.package_name 在典型的Pyramid应用程序中。

introspector

在 1.3 版本加入.

当注册表由 Configurator ,注册表将用名为 introspector 实施 pyramid.interfaces.IIntrospector 接口。

然而,当一个注册表是“手工”创建的时,这个属性将不存在,直到由配置程序设置。

此属性通常访问为 request.registry.introspector 在典型的Pyramid应用程序中。

notify(*events)[源代码]

触发一个或多个事件。将通知事件的所有事件订阅者。将同步调用订阅服务器。此方法通常访问为 request.registry.notify 在Pyramid应用程序中触发自定义事件。见 创建自己的活动 更多信息。

class Introspectable[源代码]

在 1.3 版本加入.

接口的默认实现 pyramid.interfaces.IIntrospectable 由框架执行器使用。当 pyramid.config.Configurator.introspectable 被称为。

class Deferred(func)[源代码]

可由第三方配置扩展程序用于包装 discriminator 在配置过程中,如果由于依赖未解析的值而无法计算即时哈希鉴别器。函数不应接受任何参数,并应返回可哈希鉴别器。

在 1.4 版本加入.

undefer(v)[源代码]

接受一个对象并返回它的函数,除非它是 pyramid.registry.Deferred 实例。如果它是该类的实例,则 resolve 方法,并返回该方法的结果。

在 1.4 版本加入.

class predvalseq(iterable=(), /)[源代码]

用于表示谓词值序列的元组的子类型。

在 1.4 版本加入.