Чтение свойств из конфигурационного файла с Flask и Python - PullRequest
0 голосов
/ 20 мая 2018

Сборка из Чтение файла конфигурации в виде словаря во Flask Я пытаюсь определить пользовательский файл конфигурации для настройки моего приложения Flask.

Рабочий код:

from flask import Flask
app = Flask(__name__)

import os

my_config = app.config.from_pyfile(os.path.join('.', 'config/app.conf'), silent=False)

@app.route('/')
def hello_world():

    with app.open_instance_resource('app.cfg') as f:
        print(type(f.read()))

    return 'Hello World! {}'.format(app.config.get('LOGGING'))

if __name__ == '__main__':
    app.run()

В config / app.conf добавлены следующие свойства:

myvar1="tester"
myvar2="tester"
myvar3="tester"

Вызов службы для hello_world() Функция возвращает:

Hello World! None

Не должно содержимое содержимогофайл возвращается вместо None?

Я пытаюсь получить доступ к свойству, используя app.config.get('myvar1'), но в этом случае также возвращается None.

1 Ответ

0 голосов
/ 20 мая 2018

Из официальной документации Flask :

Сами файлы конфигурации являются фактическими файлами Python.Только значения в верхнем регистре фактически сохраняются в объекте конфигурации позже. Поэтому убедитесь, что для ваших ключей конфигурации используются заглавные буквы.

Поэтому установите структуру ваших ./config/app.conf переменных как:

VARIABLE_NAME = "variable value"

Загрузить как:

app.config.from_pyfile(os.path.join(".", "config/app.conf"), silent=False)

ПРИМЕЧАНИЕ. Если вы не используете специфичную для экземпляра конфигурацию, вам на самом деле не нужно строить путь, поскольку он будет принимать путь приложения Flask в качестве своего корня.

И получить доступ к значениям позже как:

app.config.get("VARIABLE_NAME")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...