Flask - Как сохранить значение, доступное среди всех чертежей - PullRequest
0 голосов
/ 17 июня 2020

Как я могу использовать значение, созданное внешней программой перед запуском flask прогона?

Если это невозможно, то как может переменная, которая назначается в __init__.py в начале Приложение flask может использоваться внутри файлов, зарегистрированных через blueprint.register?

Пример:

__init__.py

   var1 = "SOMETHING"

routes.py

  if var1 = "SOMETHING":
     call api1 
  else
     call api2

В основном вопрос: как разделить переменные между __init__.py и теми *.py файлами, которые связаны через blueprint.

1 Ответ

0 голосов
/ 17 июня 2020

Обычной практикой является использование переменных окружения для таких целей. В системах unix вы можете легко установить переменную с помощью другой утилиты, используя:

export VARIABLE="SOMETHING"

Затем вы можете получить доступ к такой переменной в своем коде следующим образом:

os.getenv("VARIABLE", "some default value")

Следовательно, ваш пример будет выглядеть, как показано ниже:

import os

var1 = os.getenv("VARIABLE", "SOMETHING ELSE")
if var1 = "SOMETHING":
   call api1 
else
   call api2

Вы можете найти более подробную информацию о том, как использовать переменные среды с flask в документации: https://flask.palletsprojects.com/en/1.1.x/config/


Преимущество использования переменных окружения заключается в простоте конфигурирования вашего приложения в контейнерных средах, например, в kubernetes или docker.

...