Как переопределить python настройки конфигурации приложения пирамиды? - PullRequest
0 голосов
/ 29 января 2020

Я новичок ie на 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, чтобы запустить это приложение.

Я не смог выяснить, как установить переопределения. Буду признателен за некоторые материалы по этому вопросу.

1 Ответ

1 голос
/ 10 февраля 2020

Конфигуратор - это место, где вы должны выполнять переопределения. Поэтому ответ состоит в том, чтобы изменить web_main или определить свой собственный. Pyramid имеет механизм переопределения через config.include(), но он не работает на один уровень выше, когда вы пытаетесь переопределить вещи с помощью встроенного wsgi-приложения. Вы должны сделать это на уровне конфигурации.

...