Настройка переменных окружения в приложении 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, что и в моей машине разработки.



Большое вам спасибо!

1127   2  

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

    Ничего не найдено.