Проверяет понимание архитектуры Django и различий между классическим MVC и реализацией во фреймворке.
Django не следует классическому MVC напрямую. Он использует архитектуру MVT (Model-View-Template). В этой модели View в Django выполняет роль контроллера, а Template — роль представления. Поэтому архитектура похожа на MVC, но с другим распределением ролей.
Django часто сравнивают с MVC, но фактически он реализует архитектуру MVT.
MVT — это архитектурный шаблон, в котором:
Model — работа с данными
View — обработка запроса и бизнес-логика
Template — отображение данных
В классическом MVC:
Model — данные
View — отображение
Controller — логика обработки запроса
В Django:
Django View фактически играет роль Controller
Template играет роль View
# views.py
def index(request):
return render(request, "index.html", {"name": "Alex"})
Здесь:
View принимает запрос
Template отвечает за отображение
Такое разделение:
упрощает работу с HTML
делает код более читаемым
облегчает масштабирование проекта
Django близок к MVC, но формально использует MVT, где роли View и Controller распределены иначе.