Почему нельзя хранить секреты в коде?
Когда вы храните, например, пароли от базы данных или ключи API прямо в настройках (settings.py
), вы:
- Рискуете случайно отправить их в репозиторий на GitHub.
- Затрудняете переключение между окружениями (разработка, тестирование, продакшен).
- Делаете код уязвимым для злоумышленников.
Как django-environ упрощает жизнь
Пакет django-environ
позволяет:
- Хранить настройки в файле
.env
. - Извлекать данные из переменных окружения.
- Чисто разделять настройки для разработки, тестирования и продакшена.
Установка и настройка
1. Установка пакета
poetry add django-environ# илиpip install django-environ
2. Настройка проекта
Создайте файл .env
в корне проекта и добавьте конфиденциальные данные:
DEBUG=TrueSECRET_KEY=ваш-секретный-ключDATABASE_URL=postgres://user:password@localhost:5432/dbname
Настройте файл settings.py
:
import environenv = 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
? Если нет — пора добавить! 🚀
Написать комментарий