← Назад к вопросам

Как поднять Django проект?

1.0 Junior🔥 161 комментариев
#Django

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Как поднять Django проект?

Поднятие Django проекта включает несколько этапов — от инициализации до запуска сервера. Вот полная инструкция:

1. Установка зависимостей

Сначала нужно установить Django и требуемые пакеты:

# Если используется requirements.txt
pip install -r requirements.txt

# Или установить Django вручную
pip install django==4.2

# Для разработки может потребоваться дополнительные пакеты
pip install django-environ python-dotenv

2. Настройка переменных окружения

Создай файл .env в корне проекта:

# .env
DEBUG=True
SECRET_KEY=your-secret-key-here
DATABASE_URL=postgres://user:password@localhost:5432/dbname
ALLOWED_HOSTS=localhost,127.0.0.1

Затем используй переменные в settings.py:

# settings.py
import os
from environ import Env

env = Env()
env.read_env()

DEBUG = env.bool('DEBUG', default=False)
SECRET_KEY = env('SECRET_KEY')
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS', default=['localhost'])

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

3. Применение миграций к базе данных

Миграции — это контролируемые изменения схемы БД:

# Посмотри, какие миграции нужно применить
python manage.py showmigrations

# Примени все миграции
python manage.py migrate

# Или примени миграции для конкретного приложения
python manage.py migrate auth
python manage.py migrate users

4. Создание суперпользователя (администратора)

Для доступа в Django admin:

python manage.py createsuperuser
# Введи username, email и пароль

5. Сбор статичных файлов (для production)

Django нужно знать, где искать CSS, JavaScript, изображения:

# Собирает все статичные файлы в одну папку
python manage.py collectstatic --noinput

6. Запуск development сервера

Для разработки используется встроенный сервер:

# По умолчанию на localhost:8000
python manage.py runserver

# Или указать другой адрес и порт
python manage.py runserver 0.0.0.0:8080

# Или на другом хосте
python manage.py runserver 192.168.1.100:8000

Теперь проект доступен по адресу http://localhost:8000

7. Полный скрипт для быстрого старта

#!/bin/bash

# Создать виртуальное окружение
python -m venv venv
source venv/bin/activate  # На Windows: venv\Scripts\activate

# Установить зависимости
pip install -r requirements.txt

# Применить миграции
python manage.py migrate

# Создать суперпользователя
python manage.py createsuperuser

# Запустить сервер
python manage.py runserver

8. Запуск в production с Gunicorn

Для боевого окружения нужен WSGI сервер:

# Установка
pip install gunicorn

# Запуск на 4 рабочих процессах
gunicorn myproject.wsgi:application --workers 4 --bind 0.0.0.0:8000

# Или с более оптимальной конфигурацией
gunicorn myproject.wsgi:application \
  --workers 4 \
  --worker-class sync \
  --worker-connections 2000 \
  --max-requests 5000 \
  --max-requests-jitter 500 \
  --bind 0.0.0.0:8000 \
  --access-logfile - \
  --error-logfile - \
  --log-level info

9. Использование Docker для упрощенного запуска

# Dockerfile
FROM python:3.11-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

RUN python manage.py collectstatic --noinput

EXPOSE 8000

CMD ["gunicorn", "myproject.wsgi:application", "--bind", "0.0.0.0:8000"]

Запуск:

# Сборка образа
docker build -t mydjango:latest .

# Запуск контейнера
docker run -p 8000:8000 \
  -e DEBUG=False \
  -e SECRET_KEY=your-secret \
  mydjango:latest

10. Проверка здоровья проекта

Django поставляется с командой для диагностики:

# Выводит все проблемы конфигурации
python manage.py check

# Должно вывести "System check identified no issues (0 silenced)"

11. Частые ошибки при подъёме

# ❌ SECRET_KEY не установлен
ImproperlyConfigured: The SECRET_KEY setting must not be empty

# ✅ Решение: установи SECRET_KEY в settings.py или .env

# ❌ База данных не подключена
OperationalError: connection to server at "localhost" failed

# ✅ Решение: проверь DATABASE_URL и запусти migrate

# ❌ Статичные файлы не найдены (в production)
AttributeError: 'NoneType' object has no attribute 'split'

# ✅ Решение: запусти collectstatic и настрой STATIC_URL

Полная последовательность команд для нового проекта:

# 1. Клонирование или распаковка проекта
git clone <repo> myproject
cd myproject

# 2. Создание виртуального окружения
python -m venv venv
source venv/bin/activate

# 3. Установка зависимостей
pip install -r requirements.txt

# 4. Создание .env файла
echo "DEBUG=True" > .env
echo "SECRET_KEY=$(python -c 'import secrets; print(secrets.token_urlsafe(50))') >> .env

# 5. Применение миграций
python manage.py migrate

# 6. Создание суперпользователя
python manage.py createsuperuser

# 7. Запуск сервера
python manage.py runserver

# 8. Открыть в браузере
# http://localhost:8000
# Admin: http://localhost:8000/admin

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

  • Development: используй встроенный runserver
  • Production: используй Gunicorn + Nginx
  • Миграции: всегда проверяй их перед применением
  • Статичные файлы: в production обязательно запусти collectstatic
  • Переменные окружения: никогда не храни SECRET_KEY в коде
  • Database: для продакшена используй PostgreSQL вместо SQLite

Теперь проект готов к работе!