Django против контроллера вида модели [закрыто]


может кто-нибудь объяснить мне, где различия между Django и шаблоном контроллера вида модели?

функционально, что мы можем ожидать от этих различий - т. е. что работает по-разному, сравнивая Django, например, Ruby on Rails?

4   77   2011-07-08 12:05:49

4 ответа:

по словам Книга Джанго, Django следует шаблону MVC достаточно близко, чтобы называться MVC framework.

Django был назван фреймворком MTV, потому что контроллер обрабатывается самим фреймворком, и большая часть волнения происходит в моделях, шаблонах и представлениях.

вы можете прочитать больше о MTV / MVC здесь:

модель разработки MTV (или MVC)

Если вы знакомы с другими MVC Рамки веб-разработки, такие как Рубин на рельсах, вы можете рассмотреть Django представления, чтобы быть контроллеры и Django шаблоны, чтобы быть вид.

это досадная путаница вызвано различием интерпретации MVC.

в интерпретации Джанго MVC, view описывает данные, которые будут представлены для пользователя, это не обязательно только как выглядят данные, но какие данные представленный.

напротив, Рубин на рельсах и подобные рамки предполагают, что работа контроллера включает в себя принятие решения какие данные будут представлены пользователю, в то время как взгляд строго как данных, а не данных представленный.

Джанго FAQ сам по себе является достойным местом для начала:

имейте в виду, что" контроллер вида модели " - это просто шаблон, т. е. попытка описать общую архитектуру. Поэтому лучше было бы спросить: "ну как же Django соответствовать модели Посмотреть шаблон контроллера?"

когда вы кодируете, не думая об именах частей фреймворка, нет никаких существенных различий между ними, например RoR. Но это зависит от использования вы даете models, Так как на Django они легко содержат некоторую логику, которая на других фреймворках осталась бы на уровне контроллера.

The view на Django, как правило, набор запросов для извлечения данных, и передать их в шаблон.

в mvt запрос на URL-адрес отправляется в представление. Это представление вызывает модель, выполняет манипуляции и подготавливает данные для вывода. Данные передаются в шаблон, который выводится в качестве ответа. в идеале в веб-фреймворках контроллер скрыт от просмотра.

вот где отличие от MVC: в mvc пользователь взаимодействует с графическим интерфейсом, контроллер обрабатывает запрос и уведомляет модель, а представление запрашивает модель для отображения результата к пользователю.