pyramid.scripting
¶
- get_root(app, request=None)[源代码]¶
返回由以下内容组成的元组
(root, closer)
当提供 router 实例作为app
参数。这个root
返回的是应用程序根对象。这个closer
返回的是可调用的(不接受任何参数),当脚本应用程序使用根目录完成时应调用它。request
传递给 Pyramid 应用程序根工厂来计算根。如果request
如果为“无”,则将使用注册表的 Request Factory 通过pyramid.interfaces.IRequestFactory.blank()
方法。
- prepare(request=None, registry=None)[源代码]¶
此函数将数据推送到Pyramid线程本地堆栈(请求和注册表)上,使这些对象成为“当前”对象。它返回一个字典,用于在脚本环境中引导Pyramid应用程序。
request
传递给 Pyramid 应用程序根工厂来计算根。如果request
如果为“无”,则将使用注册表的 Request Factory 通过pyramid.interfaces.IRequestFactory.blank()
方法。如果
registry
未提供,上次加载的注册表来自pyramid.config.global_registries
将被使用。如果您加载了多个 Pyramid 应用程序在当前进程中,可能不希望使用上次加载的注册表,因此可以搜索global_registries
并根据自己的标准提供合适的。函数返回一个字典,该字典由
root
,closer
,registry
,request
和root_factory
. 这个root
返回的是应用程序的根资源对象。这个closer
返回的是可调用的(不接受任何参数),当脚本应用程序使用根目录完成时应调用它。registry
是已解析的注册表对象。request
传递的是请求对象,如果没有传递请求,则是构造的请求。root_factory
是用于构造根的根工厂。此函数可以用作上下文管理器来调用
closer
自动:registry = config.registry with prepare(registry) as env: request = env['request'] # ...
在 1.8 版本发生变更: 添加了将返回值用作上下文管理器的功能。
在 2.0 版本发生变更: 通过添加的请求完成回调
pyramid.request.Request.add_finished_callback()
将由closer
。