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 роблять усе". (Можливо, ми щойно це вигадали, але це правда).

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ