Kann mir jemand erklären, wo die Unterschiede zwischen Django und dem Model View Controller-Muster liegen?
Was können wir funktional von diesen Unterschieden erwarten - dh was funktioniert anders, wenn Django beispielsweise mit Ruby on Rails verglichen wird?
django
model-view-controller
frameworks
Leonardo
quelle
quelle
Antworten:
Laut dem Django-Buch folgt Django dem MVC-Muster genau genug, um als MVC-Framework bezeichnet zu werden.
Django wurde als MTV-Framework bezeichnet, da der Controller vom Framework selbst verwaltet wird und der größte Teil der Aufregung in Modellen, Vorlagen und Ansichten auftritt.
Weitere Informationen zu MTV / MVC finden Sie hier:
Das MTV- (oder MVC-) Entwicklungsmuster
quelle
Die Django-FAQ selbst ist ein guter Anfang:
Denken Sie daran, dass „Model View Controller“ nur ein Muster ist, dh ein Versuch, eine gemeinsame Architektur zu beschreiben. Eine bessere Frage könnte also lauten: "Wie gut passt Django zum Model View Controller-Muster?"
quelle
Wenn Sie codieren und nicht an Namen von Framework-Elementen denken, gibt es keine verdächtigen Unterschiede zwischen beispielsweise RoR. Dies hängt jedoch von der Verwendung ab, die Sie geben
models
, da sie auf Django leicht eine Logik enthalten, die auf anderen Frameworks auf Controller-Ebene bleiben würde.Bei
view
on Django handelt es sich in der Regel um eine Reihe von Abfragen zum Abrufen von Daten und zum Übergeben dieser Daten an die Vorlage.quelle
views
in Django ist so etwas wie eincontroller
in MVC und eintemplate
in Django ist eher einviews
In mvt wird eine Anforderung an eine URL an eine Ansicht gesendet. Diese Ansicht ruft das Modell auf, führt Manipulationen durch und bereitet Daten für die Ausgabe vor. Die Daten werden an eine Vorlage übergeben, die als Antwort ausgegeben und ausgegeben wird. Idealerweise ist der Controller in Web-Frameworks nicht sichtbar.
Hier liegt der Unterschied zu MVC: In MVC interagiert der Benutzer mit der GUI, der Controller verarbeitet die Anforderung und benachrichtigt das Modell, und die Ansicht fragt das Modell ab, um dem Benutzer das Ergebnis anzuzeigen.
quelle