JavaRush /Курси /Модуль 3: Django /Створення нового додатку в проєкті

Створення нового додатку в проєкті

Модуль 3: Django
Рівень 6 , Лекція 1
Відкрита

Давайте заглибимось у створення додатків та організацію їхньої структури.

Нагадаємо, під додатком (app) у Django розуміють модуль або компонент проєкту, який вирішує певну задачу. Django дозволяє розбивати проєкт на окремі незалежні додатки, що робить код більш читабельним, модульним і зручним для масштабування. Один і той самий додаток можна використовувати у кількох проєктах або інтегрувати у власний проєкт сторонні додатки, створені іншими розробниками.

Приклад: уявіть, що у вас є проєкт веб-сайту. У ньому можуть бути такі додатки:

  • Блог (blog)
  • Авторизація користувачів (users)
  • Управління замовленнями (orders)

Кожен із них — окремий додаток.

Нагадування: що всередині нашого застосунку

На минулому занятті ми створили застосунок blog. Після запуску команди startapp blog у вашому проєкті з’явиться така структура:

blog/
    __init__.py         # Робить цю папку модулем Python.
    admin.py            # Код для налаштування адмін-зони.
    apps.py             # Конфігурація застосунку.
    migrations/         # Папка для міграцій бази даних.
        __init__.py
    models.py           # Визначення моделей бази даних.
    tests.py            # Тести для застосунку.
    views.py            # Представлення, що відповідають за бізнес-логіку.
  • __init__.py: Цей файл просто повідомляє Python, що папка blog — це модуль. Поки він порожній, і вас це влаштовує.
  • admin.py: Використовується для реєстрації моделей у Django Admin (до цього повернемось пізніше).
  • apps.py: Вказує налаштування застосунку. Наприклад, тут вказується його ім’я.
  • migrations/: Зберігає файли міграцій для відстеження змін схеми бази даних.
  • models.py: Тут ми будемо задавати моделі для бази даних.
  • tests.py: Файл для написання тестів. Поки нам потрібно лише познайомитися з ним.
  • views.py: Тут зберігається основна бізнес-логіка: як обробляти HTTP-запити.

Організація коду всередині застосунку

Django дає тобі стандартний підхід до організації коду, але в реальних проєктах ти можеш покращувати і змінювати структуру для зручності. Наприклад, у великих проєктах часто створюють додаткові файли і папки, такі як:

  • urls.py: Для маршрутів (замість додавання їх на рівні проєкту).
  • forms.py: Для роботи з формами.
  • templates/: Для зберігання HTML-шаблонів.
  • static/: Для CSS, JS або зображень.

Рекомендації щодо організації:

  1. Розділяйте логіку: зберігай маршрути в urls.py, бізнес-логіку в views.py, а моделі — в models.py.
  2. Використовуй папки: якщо код стає занадто великим, розбивай його на підпапки (наприклад, services/ для допоміжної логіки).

Приклад покращеної структури:

blog/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py
    urls.py          # Окремий файл для маршрутів.
    templates/       # Шаблони HTML для застосунку.
        blog/
            index.html
    static/          # Статичні файли.
        blog/
            styles.css

Продовжуємо розробку нашого застосунку

На минулому занятті ми створили застосунок зі списком блогів за допомогою команди

python manage.py startapp blog

Папка blog створиться автоматично.

Давайте продовжимо.

  1. Додаємо файл urls.py

    Створіть файл urls.py всередині папки blog:

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index'),  # Маршрут для головної сторінки блогу
    ]
  2. Додаємо представлення у views.py

    Відкрийте файл views.py і визначте функцію index, яка відповідає за відображення головної сторінки блогу:

    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("Ласкаво просимо до блогу!")
  3. Реєструємо маршрутизатор застосунку в urls.py проєкту

    Тепер потрібно повідомити основний проєкт про наш застосунок і його маршрути. Відкрийте файл urls.py проєкту (в корені) і внесіть зміни:

    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('blog/', include('blog.urls')),  # Підключаємо маршрути блогу
    ]
  4. Запускаємо сервер

    Запустіть сервер:

    python manage.py runserver
    

    Відкрийте в браузері http://127.0.0.1:8000/blog/ і ви побачите повідомлення "Ласкаво просимо до блогу!".

Що робити, якщо щось пішло не так?

Якщо ти заплутався в маршрутизації, не забувай:

  1. Перевірити, чи додав ти застосунок у INSTALLED_APPS.
  2. Переконатися, що шлях у include() вказаний правильно.
  3. Перевірити, що файл urls.py містить urlpatterns.

Якщо сервер лається на відсутні файли — будь спокійний, Django майже завжди підказує, де ти помилився.

Тепер у нас є готовий застосунок "Блог"!

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