📝 Django

Django: чеклист для продакшна

P
Автор
PyLand Team
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
294
🌳
Уровень
Продвинутый

Перед публикацией Django-проекта проверь настройки безопасности, базы данных, статических файлов, HTTPS, логирования и резервного копирования.

Безопасность

# settings.py
DEBUG = False
SECRET_KEY = os.environ['SECRET_KEY']  # из переменной окружения
ALLOWED_HOSTS = ['yourdomain.com']

# HTTPS
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_HSTS_SECONDS = 31536000
SECURE_HSTS_INCLUDE_SUBDOMAINS = True

# Защита от кликджекинга
X_FRAME_OPTIONS = 'DENY'

База данных

DATABASES = {
    'default': dj_database_url.config(conn_max_age=600)
}

Используй PostgreSQL, а не SQLite.

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

pip install whitenoise
MIDDLEWARE = ['whitenoise.middleware.WhiteNoiseMiddleware', ...]
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
python manage.py collectstatic --no-input

Logging

LOGGING = {
    'version': 1,
    'handlers': {
        'console': {'class': 'logging.StreamHandler'},
    },
    'root': {'handlers': ['console'], 'level': 'WARNING'},
}

Медиафайлы

Не храни медиафайлы на сервере — используй S3 или аналог:

pip install django-storages boto3

Мониторинг ошибок

pip install sentry-sdk
import sentry_sdk
sentry_sdk.init(dsn=os.environ['SENTRY_DSN'])

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

python manage.py check --deploy

Выведет список проблем с безопасностью.

Чеклист

  • DEBUG = False
  • SECRET_KEY из переменной окружения
  • PostgreSQL вместо SQLite
  • collectstatic выполнен
  • HTTPS настроен
  • Миграции применены
  • Суперпользователь создан
  • Логирование настроено
  • Sentry подключён

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

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

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

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

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

🔗 Похожие

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

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

📝

settings.py: настройки Django

settings.py — центральный конфигурационный файл Django-проекта.

📅 30.06.2026 👁️ 316
📝

DRF ViewSets и Роутеры

ViewSet — класс объединяющий несколько связанных view в один. Router автоматически генерирует URL.

📅 30.06.2026 👁️ 285
📝

Пагинация в Django ListView

Охватываемые темы: Включение пагинации, Шаблон с пагинацией, Пагинация с фильтрами, Ручная пагинация (в function-based views).

📅 30.06.2026 👁️ 354
🎓 Продолжить обучение

В каких курсах используется этот материал

Перейдите к курсу, чтобы закрепить материал на практике.

Django RequestLab: от HTTP до безопасного продакшена Открыть программу курса