Архітектура MTV: Model-Template-View
Архітектура MTV (Model-Template-View) — це шаблон проєктування, який широко використовується в фреймворку Django для розробки веб-застосунків. Це варіація класичної моделі MVC (Model-View-Controller), адаптована під особливості Django. Хоча назви компонентів відрізняються, їхня функціональність залишається подібною.
🔹 Основні компоненти MTV
Архітектура складається з трьох основних частин:
- Model (Модель)
- Відповідає за роботу з базою даних.
- Визначає структуру даних у вигляді класів (ORM).
- Дозволяє здійснювати CRUD-операції (створення, читання, оновлення, видалення).
📌 Приклад Django Model:
from django.db import models class Product(models.Model): name = models.CharField(max_length=255) price = models.DecimalField(max_digits=10, decimal_places=2) description = models.TextField()
- Template (Шаблон)
- Відповідає за відображення інформації.
- Використовує HTML-шаблони із вбудованими тегами Django Template Language (DTL).
- Дозволяє розділяти логіку бекенду та відображення на фронтенді.
📌 Приклад Template (HTML-шаблон в Django):
<h1>{{ product.name }}</h1> <p>Ціна: {{ product.price }} грн</p> <p>Опис: {{ product.description }}</p>
- View (Представлення)
- Обробляє запити та формує відповіді.
- Використовується для отримання даних з моделей та передавання їх у шаблони.
- Визначає бізнес-логіку.
📌 Приклад View у Django:
from django.shortcuts import render from .models import Product def product_detail(request, product_id): product = Product.objects.get(id=product_id) return render(request, 'product_detail.html', {'product': product})
🔹 Як працює MTV у Django?
1️⃣ Користувач надсилає запит на сервер, наприклад, /product/1/
.
2️⃣ View отримує запит, обробляє його, взаємодіє з Model, отримуючи потрібні дані.
3️⃣ Template отримує дані від View, динамічно формує HTML-сторінку.
4️⃣ Сервер повертає відповідь, і користувач бачить сформовану сторінку.
🔄 Цикл повторюється для кожного нового запиту.
🔹 MTV vs MVC: Чи є різниця?
- В MVC (Model-View-Controller) архітектурі є Controller, який керує взаємодією між Model та View.
- У Django роль Controller виконує View, а Templates замінюють View із MVC.
📌 Відповідність термінів MVC та MTV:
MVC | MTV (Django) | Опис |
---|---|---|
Model | Model | Робота з даними, ORM. |
View | Template | Відображення сторінок. |
Controller | View | Логіка обробки запитів. |
🔹 Переваги MTV
✅ Чітке розділення логіки (зменшує плутанину в коді).
✅ Гнучкість (легко оновлювати окремі частини).
✅ Зручна інтеграція з ORM (Django Models).
✅ Швидка розробка (завдяки шаблонам та вбудованим інструментам).
🔹 Висновок
Архітектура MTV у Django — це варіація MVC, де View виконує роль контролера, а відображення реалізується через шаблони. Це робить Django зручним, модульним і ефективним для створення сучасних веб-застосунків. 🚀