获取金字塔中WSGI应用程序的句柄

2024-04-19 05:31:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在分叉之后关闭pserve/waitress进程,但是我很难获得对它的引用以便可以关闭它。通常,在金字塔中我会:

def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    ...
    config = Configurator(settings=settings,
                          authentication_policy=authn_policy,
                          authorization_policy=authz_policy,
                          root_factory=Root)
    config.scan()   
    return config.make_wsgi_app()

但是,我不能用WSGI app将变量存储在某处,因为它在app视图中的globals()中不可见,等等

我怎么才能控制住它或者至少用另一种方法把它关上?你知道吗


Tags: configappwsgisettings进程maindefpolicy
1条回答
网友
1楼 · 发布于 2024-04-19 05:31:01

Configurator()调用似乎阻止在main()函数中向设置字典添加键,因此我使用了一个技巧,在settings['post_configurator_settings']下添加了一个字典,以后可以使用,当然,所有这些都在__init__.py中:

def main(global_config, **settings):
...
settings['post_configurator_settings'] = {}
config = Configurator(settings=settings,
                     ...
                      root_factory=Root)

...

wsgi_app = config.make_wsgi_app()
settings['post_configurator_settings']['wsgi_app'] = wsgi_app
return wsgi_app

相关问题 更多 >