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 并根据自己的标准提供合适的。

函数返回一个字典,该字典由 rootcloserregistryrequestroot_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