Добавить в корзинуПозвонить
Найти в Дзене

Для чего нужен environ в Django и как с ним работать

Когда вы храните, например, пароли от базы данных или ключи API прямо в настройках (settings.py), вы: Пакет django-environ позволяет: poetry add django-environ
# или
pip install django-environ Создайте файл .env в корне проекта и добавьте конфиденциальные данные: DEBUG=True
SECRET_KEY=ваш-секретный-ключ
DATABASE_URL=postgres://user:password@localhost:5432/dbname Настройте файл settings.py: import environ
env = environ.Env(
DEBUG=(bool, False)
)
environ.Env.read_env()
DEBUG = env('DEBUG')
SECRET_KEY = env('SECRET_KEY')
DATABASES = {
'default': env.db()
} SECRET_KEY = env('SECRET_KEY', default='небезопасный-ключ') Использование django-environ защищает данные, упрощает разработку и делает проект готовым к масштабированию. У вас уже есть .env? Если нет — пора добавить! 🚀
Оглавление

Почему нельзя хранить секреты в коде?

Когда вы храните, например, пароли от базы данных или ключи API прямо в настройках (settings.py), вы:

  • Рискуете случайно отправить их в репозиторий на GitHub.
  • Затрудняете переключение между окружениями (разработка, тестирование, продакшен).
  • Делаете код уязвимым для злоумышленников.

Как django-environ упрощает жизнь

Пакет django-environ позволяет:

  • Хранить настройки в файле .env.
  • Извлекать данные из переменных окружения.
  • Чисто разделять настройки для разработки, тестирования и продакшена.

Установка и настройка

1. Установка пакета

poetry add django-environ
# или
pip install django-environ

2. Настройка проекта

Создайте файл .env в корне проекта и добавьте конфиденциальные данные:

DEBUG=True
SECRET_KEY=ваш-секретный-ключ
DATABASE_URL=postgres://user:password@localhost:5432/dbname

Настройте файл settings.py:

import environ

env = environ.Env(
DEBUG=(bool, False)
)

environ.Env.read_env()

DEBUG = env('DEBUG')
SECRET_KEY = env('SECRET_KEY')
DATABASES = {
'default': env.db()
}

Советы по работе с environ

  • Никогда не добавляйте .env в репозиторий.
  • Проверяйте наличие переменных окружения перед деплоем.
  • Используйте валидаторы для переменных:

SECRET_KEY = env('SECRET_KEY', default='небезопасный-ключ')

Заключение

Использование django-environ защищает данные, упрощает разработку и делает проект готовым к масштабированию. У вас уже есть .env? Если нет — пора добавить! 🚀