Может кто-нибудь объяснить мне, где различия между Django и шаблоном Control Model Model?
Функционально, что мы можем ожидать от этих различий - то есть, что по-разному сравнивает Django с, например, Ruby on Rails?
Может кто-нибудь объяснить мне, где различия между Django и шаблоном Control Model Model?
Функционально, что мы можем ожидать от этих различий - то есть, что по-разному сравнивает Django с, например, Ruby on Rails?
В соответствии с Django Book Django следует шаблону MVC достаточно близко, чтобы называться MVC-каркасом.
Django упоминается как структура MTV, потому что контроллер обрабатывается самой каркас, и большая часть волнения происходит в моделях, шаблонах и представлениях.
Вы можете узнать больше о MTV/MVC здесь:
Шаблон разработки MTV (или MVC)
Если вы знакомы с другими MVC Рамки веб-разработки, такие как Ruby on Rails, вы можете рассмотреть Django взгляды, которые будут контроллерами и Шаблоны Django являются представлениями.
Это неудачная путаница вызванных различными интерпретации MVC.
В интерпретации Djangos MVC вид описывает данные, которые представлены пользователю; это не обязательно как выглядят данные, но какие данные представлены.
В отличие от Ruby on Rails и аналогичные рамки предполагают, что задача диспетчеров включает в себя решение какие данные передаются пользователю, в то время как данные, а не данные представлены.
Часто задаваемые вопросы по Django - хорошее место для начала:
В нашей интерпретации MVC "представление" описывает данные, которые представляются пользователю. Не обязательно, как данные выглядят, но какие данные представлены. Представление описывает, какие данные вы видите, а не то, как вы это видите. Это тонкое различие.
...
Кроме того, целесообразно отделить контент от представления - вот где появляются шаблоны. В Django "представление" описывает, какие данные представлены, но представление обычно делегируется шаблону, который описывает способ представления данных.
Где же тогда "контроллер"? В случае Djangos, вероятно, это сама структура: механизм, который отправляет запрос в соответствующее представление, в соответствии с конфигурацией URL Django.
Если вы жаждете сокращений, вы можете сказать, что Django - это фреймворк "MTV", то есть "модель", "шаблон" и "представление". Это расстройство имеет гораздо больше смысла.
Помните, что "Model View Controller" - это просто шаблон, то есть попытка описать общую архитектуру. Поэтому лучше задать вопрос: "Насколько хорошо Django соответствует шаблону Model View Controller?"
Когда вы кодируете, не думая о названиях фреймворков, нет никаких существенных различий между ними, например RoR. Но это зависит от того, как вы используете models
, поскольку на Django они легко содержат некоторую логику, которая на других платформах оставалась бы на уровне контроллера.
view
на Django имеет тенденцию быть набором запросов для извлечения данных и передает их в шаблон.
В mvt запрос на URL-адрес отправляется в представление. Этот View вызывает модель, выполняет манипуляции и подготавливает данные для вывода. Данные передаются в Шаблон, который визуализируется как ответ. в идеале в веб-фреймворках контроллер скрыт от просмотра.
Здесь разница заключается в MVC: в mvc пользователь взаимодействует с gui, контроллер обрабатывает запрос и уведомляет модель, и представление запрашивает модель для отображения результата пользователю.