Конфигурация приложения Flask из файла YAML не загружена - PullRequest
0 голосов
/ 01 ноября 2019

Моему приложению нужны конфиги, например = app.config['LDAP_BASE_DN'] = 'OU=users,dc=example,dc=org' Я хочу передать эти конфигурации в файл YAML, а затем заставить приложение использовать его. Я могу загрузить файл, используя PyYAML или config_with_yaml, проблема в том, что я не могу настроить приложение на использование его в качестве конфигурации. Он должен работать на основе "https://exploreflask.com/en/latest/configuration.html"

. Я загружаю свою конфигурацию с помощью cfg = config.load("/Users/pjose/Project/dev_maintenance/backend/config.yaml"), затем я устанавливаю свою конфигурацию приложения для получения данных из файла yaml app.config.from_object(cfg), и, вызывая app.config["LDAP_USERNAME"], он должен установитьКонфиг, но он не работает.

Файл YAML:

LDAP_USERNAME: 'CN=Hermes Conrad,ou=people,dc=planetexpress,dc=com'

Я получаю эту ошибку:

  File "/Users/pjose/Project/dev_maintenance/backend/dev_maintenance/__init__.py", line 32, in <module>
    app.config["LDAP_USERNAME"]
KeyError: 'LDAP_USERNAME'

1 Ответ

0 голосов
/ 01 ноября 2019

Я наконец-то смог сделать эту работу

Проблема заключалась в том, что я не передавал значение из файла YAML в app.config["LDAP_USERNAME"], поскольку в документации, которую я использовал, нет ссылок на эту темуи я думаю, что он получит значение, просто объявив вот так.

Итак, пример того, как вы можете использовать файл YAML для настройки конфигурации вашего приложения:

config.yaml

SQLALCHEMY_DATABASE_URI: "sqlite://"
SQLALCHEMY_TRACK_MODIFICATIONS : False

Затем, чтобы получить значения, вам нужно проанализировать yaml, используя библиотеку PyYAML или другое:

data = yaml_loader.yaml("/Users/pjose/Project/dev_maintenance/backend/config.yaml")
app.config.from_object(data)
app.config['SQLALCHEMY_DATABASE_URI'] = data.setdefault('SQLALCHEMY_DATABASE_URI')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...