Может ли кто-нибудь объяснить мне, в чем разница между Django и шаблоном Model View Controller?
С функциональной точки зрения, что мы можем ожидать от этих различий - то есть, что работает по-разному при сравнении Django, например, с Ruby on Rails?
django
model-view-controller
frameworks
Леонардо
источник
источник
Ответы:
Согласно книге Django , Django следует шаблону MVC достаточно близко, чтобы его можно было назвать фреймворком MVC.
Django называют фреймворком MTV, потому что контроллер обрабатывается самим фреймворком, и большая часть ажиотажа возникает в моделях, шаблонах и представлениях.
Вы можете узнать больше о MTV / MVC здесь:
Шаблон развития MTV (или MVC)
источник
Сама по себе Django FAQ - хорошее место для начала:
Помните, что «Контроллер представления модели» - это просто шаблон, то есть попытка описать общую архитектуру. Так что лучший вопрос может быть: «Насколько хорошо Django соответствует шаблону Model View Controller?»
источник
Когда вы пишете код, не думая о названиях частей фреймворка, между ними нет никаких подозрительных различий, например RoR. Но это зависит от вашего использования
models
, поскольку в Django они легко содержат некоторую логику, которая в других фреймворках останется на уровне контроллера.В
view
Django обычно представляет собой набор запросов для получения данных и передачи их в шаблон.источник
views
в Django - это что-то вродеcontroller
MVC, аtemplate
в Django, скорее, aviews
В mvt запрос к URL-адресу отправляется в представление. Это представление вызывает модель, выполняет манипуляции и подготавливает данные для вывода. Данные передаются в шаблон, который отображается в качестве ответа. в идеале в веб-фреймворках контроллер скрыт от глаз.
В этом отличие от MVC: в mvc пользователь взаимодействует с графическим интерфейсом пользователя, контроллер обрабатывает запрос и уведомляет модель, а представление запрашивает модель, чтобы отобразить результат пользователю.
источник