JavaRush /Курсы /Модуль 3: Django /Основные команды manage.py

Основные команды manage.py

Модуль 3: Django
1 уровень , 6 лекция
Открыта

Помните файл manage.py в корне проекта? Если вы думали, что это просто "кнопка запуска" — у меня для вас хорошие новости. Этот файл гораздо мощнее!

Представьте современную кухню, где вместо десятка разных приборов есть один удобный пульт управления. Одно нажатие — духовка разогрета, второе — таймер установлен, третье — вытяжка включена. Именно так работает manage.py в Django:

  • Нужно запустить сервер? python manage.py runserver
  • Обновить базу данных? python manage.py migrate
  • Проверить код? python manage.py test

И это только начало! manage.py — это ваш универсальный помощник для управления всем проектом Django.

Основной синтаксис:

python manage.py <команда> [параметры]

Каждая команда имеет своё предназначение, некоторые из них мы будем использовать настолько часто, что они станут второй натурой.

Практическое знакомство с командами

Теперь давайте разберем самые распространенные команды manage.py и научимся применять их на практике.

1. runserver

Это, пожалуй, та команда, с которой вы уже знакомы. Она запускает локальный dev-сервер, позволяя нам проверять, как работает проект в режиме реального времени.

Синтаксис:

python manage.py runserver

По умолчанию сервер запускается на http://127.0.0.1:8000. Если вам нужен другой порт или IP-адрес, это можно указать:

python manage.py runserver 8080  # Запустит сервер на порту 8080
python manage.py runserver 0.0.0.0:8000  # Откроет сервер для подключения извне
⚠️ Помните:

dev-сервер не подходит для production! В реальной жизни мы используем настоящие веб-серверы, такие как Nginx или Apache.

2. startapp

Эта команда создает новое приложение. Мы обсуждали в предыдущей лекции, что проект Django может включать одно или несколько приложений, и каждое из них изолировано друг от друга.

Пример:

python manage.py startapp blog

После выполнения этой команды появится папка blog, а внутри — файлы, которые Django создал за вас: models.py, views.py, apps.py и другие. О структуре приложения мы поговорим чуть позже на курсе, но пока знайте: это начало вашего функционального модуля.

3. migrate и makemigrations

Django ORM — это то, что делает работу с базой данных почти магической. Важно понимать, что чтобы изменения в моделях отразились на базе данных, нужно использовать миграции. Вот тут-то нам помогут makemigrations и migrate.

Создание миграций

python manage.py makemigrations

Эта команда создает «пакеты инструкций» о том, как преобразовать нашу базу данных. Например, если мы добавили модель Post, makemigrations зафиксирует её.

Применение миграций

python manage.py migrate

Она приводит базу данных в соответствие с миграциями. Фактически, это все равно что сказать Django: «Просто сделай это, я доверяю!»

🛠 На практике вы часто будете писать:

python manage.py makemigrations && python manage.py migrate
чтобы вносить изменения в ваши данные.

4. createsuperuser

Чтобы получить доступ к административной панели Django, нужен суперпользователь. Он создается командой:

python manage.py createsuperuser

Далее система запросит вас ввести имя пользователя, email и пароль. После этого вы сможете зайти в админ-зону по адресу:
http://127.0.0.1:8000/admin

5. shell

Команда shell открывает интерактивную Python-сессию с подключением к вашему проекту. Это мощный инструмент для работы с данными. Вы можете напрямую взаимодействовать с базой данных через модели, а также тестировать функциональность.

python manage.py shell

Попробуем прямо в консоли:

from myapp.models import Post
Post.objects.all()

Это выведет все записи модели Post. Позже, когда мы начнем работать с моделями, вы оцените эту команду по достоинству.

6. check

Эта команда проверяет настройку вашего проекта на наличие потенциальных ошибок. Если в settings.py есть ошибки или несоответствия, она сообщит вам об этом.

python manage.py check
⚠️ Совет:

запускайте эту команду всякий раз, когда сомневаетесь в своем коде. Она спасет вас от боли (и от неприятных багов).

7. showmigrations

Хотите узнать, какие миграции были применены, а какие — нет? Эта команда предоставит вам полный список.

python manage.py showmigrations

Пример вывода:

admin
 [X] 0001_initial
 [ ] 0002_auto_20231001_1234

8. test

Для запуска тестов вашего приложения используется команда:

python manage.py test

Позже мы детально разберем, как писать тесты, а пока знайте: эта команда запускает все тесты в директории tests.py (или другие тестовые модули).

9. collectstatic

Когда ваш проект готов к публикации, вам нужно собрать все статические файлы (CSS, JS, изображения) в одном месте. Это делается командой:

python manage.py collectstatic

По умолчанию файлы собираются в папку, указанную в settings.py параметром STATIC_ROOT. Эта команда пригодится вам в продакшене.

Типичные ошибки и полезные советы

  1. Ошибка "Command not found". Чаще всего возникает, если вы забыли добавить python перед manage.py. Например:

    python manage.py runserver
    
  2. Использование runserver в production. Локальный сервер разработки не предназначен для больших нагрузок. Если вы запустите его в боевом режиме на большом проекте, ждите беды.

  3. Команда migrate без makemigrations. Django просто не знает, какие изменения нужно применить. Всегда начинайте с makemigrations.

  4. Игнорирование check. Если что-то работает "не так", но кажется "незначительным", лучше всё равно проверить проект. check часто устранит проблему до того, как она станет головной болью.

Применение команд в реальных проектах

Теперь, зная про команды manage.py, вы значительно ускорите процесс разработки. Эти команды очень нужны всем Django-разработчикам:

  • На собеседованиях у вас обязательно спросят про использование migrate, createsuperuser или runserver. Не пугайтесь, это базовая компетенция.
  • В реальных проектах команды обеспечивают порядок и простоту управления. Вы всегда знаете, что и как делать с базой данных, приложениями и настройками.

Ведь, как говорится, "Хороший код пишут программисты, плохой код чинят программисты, а команды в Django делают всё". (Может, мы только что это придумали, но это правда).

1
Задача
Модуль 3: Django, 1 уровень, 6 лекция
Недоступна
Работа с миграциями
Работа с миграциями
1
Задача
Модуль 3: Django, 1 уровень, 6 лекция
Недоступна
Создание superuser и настройка административной панели
Создание superuser и настройка административной панели
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Марат Уровень 73
4 октября 2025
Админы, почините первую задачу, пожалуйста. Первое и последнее требования противоречат друг другу и из-за этого валидатор ругается и не пропускает решение.
Александр Уровень 45
27 апреля 2025
В команде python manage.py createsuperuser есть параметры --username и --email