Как вы уже знаете, Django — это веб-фреймворк Python. И, как и большинство современных фреймворков, Django поддерживает шаблон MVC. Сначала давайте посмотрим, что из себя представляет шаблон Model-View-Controller (MVC), а затем рассмотрим специфику Django для шаблона Model-View-Template (MVT).
Паттерн MVC
Говоря о приложениях, которые предоставляют пользовательский интерфейс (веб или настольный компьютер), мы обычно говорим об архитектуре MVC. И как следует из названия, паттерн MVC основан на трех компонентах: Модель, Представление и Контроллер.
Паттерны MVC — MVT в Django
Model-View-Template (MVT) немного отличается от MVC. На самом деле основное различие между этими двумя паттернами заключается в том, что Django сам заботится о части контроллера (программном коде, который контролирует взаимодействие между моделью и представлением), оставляя нас с шаблоном. Шаблон представляет собой файл HTML, смешанный с языком шаблонов Django (DTL).
Следующая диаграмма иллюстрирует, как каждый из компонентов паттерна MVT взаимодействует друг с другом для обслуживания пользовательского запроса.
Разработчик предоставляет Модель, Представление и Шаблон, а затем просто сопоставляет их с URL-адресом, а Django делает все возможное, чтобы предоставить его пользователю.
Источник: Django — Overview