Frage Django vs. Model View Controller [geschlossen]


Kann mir jemand erklären, wo die Unterschiede zwischen Django und dem Model View Controller Muster liegen?

Funktional, was können wir von diesen Unterschieden erwarten - d. H. Was funktioniert anders, wenn man Django zum Beispiel mit Ruby on Rails vergleicht?


76
2017-07-08 08:05


Ursprung


Antworten:


Entsprechend der Django Buch, Django folgt 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 die meiste Aufregung in Modellen, Vorlagen und Ansichten stattfindet.

Hier können Sie mehr über MTV / MVC lesen:

Das MTV (oder MVC) Entwicklungsmuster

Wenn Sie mit anderen MVC vertraut sind   Web-Entwicklungs-Frameworks, wie z   Ruby on Rails können Sie Django in Betracht ziehen   Ansichten zu sein Controller und   Django Vorlagen zu sein Ansichten.

Dies ist eine unglückliche Verwirrung   durch Unterschiede hervorgerufen   Interpretationen von MVC.

In Djangos Interpretation von MVC, der Aussicht   beschreibt die Daten, die präsentiert werden   für den Benutzer; es ist nicht unbedingt gerecht   wie die Daten aussehen, aber welche Daten es sind   vorgeführt.

Im Gegensatz dazu Ruby on Rails   und ähnliche Rahmenbedingungen deuten darauf hin   Die Aufgabe des Controllers umfasst die Entscheidung   welche Daten dem Benutzer präsentiert werden,   in der Erwägung, dass die Ansicht ist ausschließlich wie   Daten schauen, nicht welche Daten sind   vorgeführt.


103
2017-07-08 08:45



Die Django FAQ selbst ist ein guter Startpunkt:

Denken Sie daran, dass "Model View Controller" nur ein Muster ist, d. H. Ein Versuch, eine gemeinsame Architektur zu beschreiben. Eine bessere Frage könnte sein: "Wie gut passt Django in das Model View Controller-Muster?"


18
2017-07-08 08:11



Wenn Sie Code schreiben und nicht über Namen von Framework-Stücken nachdenken, gibt es keine wesentlichen Unterschiede zwischen den beiden, z. B. RoR. Aber es hängt 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.

Das view auf Django besteht in der Regel aus einer Reihe von Abfragen zum Abrufen von Daten und leitet diese an die Vorlage weiter.


10
2017-11-15 15:31



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 ein Template übergeben, das als Antwort ausgegeben wird. Idealerweise in Web-Frameworks ist der Controller nicht sichtbar.

Hier liegt der Unterschied zu MVC: In mvc interagiert der Benutzer mit der GUI, der Controller verarbeitet die Anfrage und benachrichtigt das Modell und die Ansicht fragt das Modell ab, um das Ergebnis dem Benutzer anzuzeigen.


6
2017-07-08 08:13