Перейти к содержанию

Переменные окружения (.env)

Переменные окружения используются для настройки параметров, которые могут изменяться в зависимости от среды выполнения. Они определяются в файле .env в корне проекта или через переменные среды ОС. Для загрузки и использования переменных применяется модуль environ и файл settings_envs.py.

Пример использования

import environ
import os
from manage import BASE_DIR

env_path = os.path.join(BASE_DIR, ".env")
environ.Env.read_env(env_path)
env = environ.Env(...)

DB_HOST = env("DB_HOST", default="0.0.0.0")
EMAIL_HOST = env("EMAIL_HOST")

Преимущества

  • Гибкость: Легко переключаться между различными конфигурациями без изменения кода.
  • Безопасность: Конфиденциальные данные, такие как пароли и ключи API, не хранятся в коде.

Рекомендации

  • Используйте .env файл для локальной разработки и переменные среды для продакшн-среды.
  • Не добавляйте .env файл в систему контроля версий.

Реализация переменных окружения в системе

Переменные окружения определяются в файле .env в корне проекта или через переменные среды ОС. Для загрузки и использования переменных применяется модуль environ и файл settings_envs.py (путь: apps/ibp/settings_envs.py):

import environ
import os
from manage import BASE_DIR

env_path = os.path.join(BASE_DIR, ".env")
environ.Env.read_env(env_path)
env = environ.Env(...)

В файле settings.py (путь: apps/ibp/settings.py) переменные окружения используются для настройки базы данных, почты, путей, флагов и т.д. Пример:

DB_HOST = env("DB_HOST", default="0.0.0.0")
EMAIL_HOST = env("EMAIL_HOST")

Список всех переменных и их описание см. в разделе "Начало работы": - Начало работы: Переменные окружения