如何覆盖python pyramid app配置设置?

问题描述 投票:0回答:1

我是Python Pyramid的新手,正在努力改进现有的应用程序。我有一个定义如下的应用程序主要功能:

def web_main(global_config, **settings):
  config = Configurator(settings=settings, root_factory=RootFactory)
  ...
  ...
  config.add_request_method(get_user, "user", reify=True)
  config.set_authentication_policy(authn_policy)
  config.set_authorization_policy(authz_policy)
  ...
  app = config.make_wsgi_app()
  return app

我想在实现中覆盖get_user请求方法,也想使用自己的身份验证策略。

因此,我正在考虑编写如下功能:

def my_web_main(global_config, **settings):
  app = web_main(global_config, **settings)
  <Set Overrides here>
  return app

config.ini文件中,我将调用my_web_main启动此应用。

我还无法弄清楚如何设置替代值。希望对此有所投入。

python pyramid
1个回答
0
投票

配置器是您应该执行替代的地方。因此,答案是修改web_main或定义自己的。金字塔具有通过config.include()进行覆盖的机制,但是在尝试使用内置的wsgi-app覆盖事物的位置上,金字塔无法上一层使用。您必须在配置级别执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.