📝 Django

Переменные окружения в Django

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
78
🌿
Уровень
Средний
🐦 💼 ✈️

Охватываемые темы: Зачем переменные окружения, python-dotenv, django-environ (альтернатива), .gitignore.

Зачем переменные окружения

  • Секреты (SECRET_KEY, пароли) не попадают в git
  • Разные настройки для dev/prod без изменения кода

python-dotenv

pip install python-dotenv
# .env (в корне проекта, НЕ коммитить)
SECRET_KEY=django-insecure-abc123
DEBUG=True
DATABASE_URL=sqlite:///db.sqlite3
ALLOWED_HOSTS=localhost,127.0.0.1
# settings.py
from pathlib import Path
from dotenv import load_dotenv
import os

load_dotenv()

SECRET_KEY = os.environ.get('SECRET_KEY')
DEBUG = os.environ.get('DEBUG', 'False') == 'True'
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', '').split(',')

django-environ (альтернатива)

pip install django-environ
import environ
env = environ.Env()
environ.Env.read_env('.env')

DEBUG = env.bool('DEBUG', default=False)
SECRET_KEY = env.str('SECRET_KEY')
DATABASES = {'default': env.db('DATABASE_URL')}

.gitignore

.env
*.env
.env.local

.env.example (шаблон для команды)

# .env.example — коммитится в репозиторий
SECRET_KEY=your-secret-key-here
DEBUG=True
DATABASE_URL=sqlite:///db.sqlite3
ALLOWED_HOSTS=localhost

Проверка в prod

# Railway, Heroku, Docker: переменные задаются в платформе
# Не нужен .env файл на сервере
export SECRET_KEY="production-secret"
export DEBUG="False"

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

pytest-django: тестирование Django

Охватываемые темы: Установка, @pytest.mark.djangodb, Фикстуры, Тестирование views.

📅 30.06.2026 👁️ 138
📝

Django: Теги шаблонов

Теги шаблонов — это логика внутри HTML. В отличие от {{ переменная }}, которая только...

📅 30.06.2026 👁️ 85
📝

Django: Статические файлы

Статические файлы — CSS, JavaScript, изображения, шрифты. Django обрабатывает их особым образом: в разработке раздаёт...

📅 30.06.2026 👁️ 76

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!