Ihre models.py
kann (und ist manchmal) leer sein. Sie sind nicht verpflichtet, ein Modell zu haben, das einer Datenbank zugeordnet ist.
Sie sollten noch eine models.py
Datei haben, um Djangos Admin glücklich zu machen. Der Dateiname models.py
ist wichtig, und es ist einfacher, eine leere Datei zu haben, als zu versuchen, die von verschiedenen Admin-Befehlen erwartete Datei zu ändern.
Das "Modell" - im Allgemeinen - muss nicht auf eine Datenbank abgebildet werden. Das "Modell" - als eine allgemeine Komponente des MVC-Designs - kann alles sein.
Sie können - und tun es oft auch - Ihr eigenes "Modell" -Modul definieren, das Ihre Ansichten verwenden. Nennen Sie es einfach nicht models.py
, weil es Django Admin verwechseln wird. Nennen Sie es für Ihre Anwendung etwas Sinnvolles: foo.py
. Diese foo.py
manipuliert die realen Dinge, die Ihre Anwendung untermauern - nicht unbedingt eine Django Model.model
Unterklasse.
Django MVC erfordert keine Datenbankzuordnung. Es wird ausdrücklich erwartet, dass das Modul models.py
eine Datenbankzuordnung enthält. Verwenden Sie also eine leere models.py
, wenn Sie keine tatsächliche Datenbankzuordnung haben.
Ihre views.py
verwenden können
import foo
def index(request):
objects = foo.somelistofobjects()
*etc.*
Django können Sie ganz einfach ohne Datenbank-Mapping arbeiten. Ihr Modell kann leicht alles sein. Nennen Sie es nicht models.py
.
bearbeiten.
Sind Ansichten bei Models registriert?
Bei Aktualisierung des Modells durch den Controller werden die Ansichten benachrichtigt?
Ist das Modell genau die Datenrepräsentation, da dies wirklich MVP ist? Ja.
Lesen Sie die Django-Dokumentation. Es ist einfach.
Web-Anfrage -> URL-Mapping -> Funktion anzeigen -> Vorlage -> Antwort.
Das Modell kann von der View-Funktion verwendet werden. Das Modell kann eine Datenbankzuordnung sein oder jede andere Sache.
Ihre Antwort kann stimmen oder nicht, ich habe Django nicht benutzt, und es ist 2 Jahre her, seit ich Python benutzt habe. Aber das ist es, was ich absolut hasse, was Web-Frameworks mit dem Konzept von MVC getan haben.Es gibt keine unbedingte Anforderung, dass die Modelldaten im MVC-Paradigma aus der Datenbank stammen. –
Das Modell muss * nicht * aus einer Datenbank stammen. Wir machen es in unseren Django-Anwendungen. Einige unserer Apps haben Modelle, die nicht in der Datenbank enthalten sind. –
Fair genug, aber anscheinend müssen Sie in einer Weise arbeiten, die in Django nicht Standard ist, um dies zu tun. Und natürlich habe ich das auch mit anderen Frameworks gesehen. Ich denke, dass sie alle den Web-Entwicklern, die sich mit der Erfahrung von Impressionen und weniger Erfahrung auskennen, den Dienst weggenommen haben, indem sie den Begriff "Modellklassen" eingeführt haben. Meistens handelt es sich um * Entity * -Klassen. Ich stimme gar nicht zu, dass es so etwas wie eine Modellklasse geben sollte, das Modell befindet sich auf einer noch höheren Abstraktionsebene. Eine Modellfassade vielleicht, aber Modellklassen, nein. Wie auch immer, es ist mein Liebling und ich denke ich bin ein MVC Purist oder so. –