Настройка переменных окружения в приложении heroku for flask
У меня есть приложение flask, которое использует различные конфигурационные файлы для разработки и производственных сред. Соответствующий фрагмент кода выглядит следующим образом:
app.config.from_object('config.dev')
app.config.from_envvar('SPOTPIX_SETTINGS', silent=True)
Когда я разрабатываю на своем локальном сервере, конфигурации берутся из config.dev, но когда я нажимаю код на heroku, я хотел бы установить переменную среды SPOTPIX_SETTINGS, чтобы она указывала на ' config.prod ' файл. Это можно сделать в клиенте командной строки heroku следующим образом:
heroku config:set SPOTPIX_SETTINGS=
Однако я понятия не имею, что следует ли мне писать справа от знака равенства, так как я не могу назначить абсолютный путь файла производственной конфигурации переменной среды, потому что это не то же самое в heroku, что и в моей машине разработки.
Большое вам спасибо!
2 ответов:
Вы должны использовать
env variable, чтобы посмотреть, находитесь ли вы в dev или heroku.heroku config:set IS_HEROKU=TrueЗатем в вашем файле
import os is_prod = os.environ.get('IS_HEROKU', None) if is_prod: #here goes all your heroku config
Я ничего не знаю о вашем проекте, но у Heroku есть система для этого.
Вместо того, чтобы хранить ваши производственные (Heroku) конфигурационные файлы в файле, вы вводите их с помощью командной строки или веб-интерфейса.
Метод командной строки:
heroku config:set THEANSWERTOEVERYTHINGEVER=42Мне нравится метод web UI, потому что он симпатичный (он находится в настройках приложения).
Как вы будете управлять вашей разработкой config vars - это вы будете писать их в стиле YAML .env файл
# Contents of .env file in application root (GITIGNORE THIS) # These are only for your development environment THEANSWERTOEVERYTHINGEVER=42 ENVIRONMENT="DEVELOPMENT"Затем в файле заявки добавить
import osВы можете получить переменные конфигурации, используя этот синтаксис
os.environ.get('THEANSWERTOEVERYTHINGEVER')И последний, но самый важный шаг!
Запустите сервер с помощью
heroku localвместоpython mysweetapp.py. Это приведет к запуску Heorku сервере и загрузите свои локальные настройки Варс для вас. Вероятно, требуется пояс для инструментов Heroku, если у вас его нет.Все здесь. https://devcenter.heroku.com/articles/getting-started-with-python#define-config-vars
Comments