Django Forms <-- Verarbeitungsreihenfolge

Django, Flask, Bottle, WSGI, CGI…
Antworten
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

Hallo Zusammen,

bin noch ziemlich frisch in Materie Webprogrammierung. Beim durcharbeiten eines Tutorials (How to tango with django) bin ich auf ein Verständnisproblem gestoßen. Denn ich weiß nicht wie die Verarbeitungsrichtung von django forms funktioniert. Wenn ich forms weglassen, dann kommt zuerst die urls.py --> views.py --> models.py --> views.py --> templates. Wie funktioniert es aber dann mit forms, wo kann ich das dann zwischen schalten.

Sorry für solche banalen Fragen, aber ich stehe gerade echt auf dem Schlauch.
Gruß
Samid
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Abgesehen dass deine Verarbeitungsreihenfolge keinen Sinn macht (``models.py`` kommen nie in den Control Flow), würde man es zwischen ``views.py`` und ``templates`` ansiedeln (rendern von Forms) sowie zwischen ``views.py`` und ``models.py`` (validieren von Forms).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

Hi,
danke für die Antwort. Wieso findest du, dass diese Verarbeitungsreihenfolge keine Sinn macht? Dieses Bild zeigt aber was anderes:
Bild

Gruß
Samid
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

Hallo ich nochmal,

vielleicht hätte ich nicht models.py schreiben sollen, sondern model. Ich will einfach wissen welche Komponente fängt an zu steuern und welche hört auf.

Gruß
Samid
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

samid hat geschrieben:Wieso findest du, dass diese Verarbeitungsreihenfolge keine Sinn macht? Dieses Bild zeigt aber was anderes:
Ich würde das nicht als Verarbeitungsreihenfolge bezeichnen. Das Wesentliche ist Punkt 2: "The view function [...] performs the requested action [...]". Dazu nutzt sie andere Komponenten wie beispielsweise Models oder Forms. Es kann übrigens auch sein, dass überhaupt kein Model angesprochen wird.
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

Aber wenn man jetzt die obere Grafik als Basis nimmt, dann kann man die Forms zwischen Views und Templates einfügen oder?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

samid hat geschrieben:Aber wenn man jetzt die obere Grafik als Basis nimmt, dann kann man die Forms zwischen Views und Templates einfügen oder?
Man kann das machen. Und dann stößt man in der Django-Dokumentation auf "Creating Forms from Models" und stellt fest, dass es so einfach anscheinend doch nicht ist.
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

Ich verstehe ja, dass es nicht so einfach ist, aber eine logische Abfolge sollte es hier schon geben um verstehen zu können wie das ganze überhaupt zusammenhängt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Würde ich nicht unbedingt sagen. Also es gibt halt Dispatching und Views. Der Rest ist völlig optional. Wenn man Templates hat, dann werden diese meist am Ende des Views ausgeführt. Wenn man Models nutzt, dann werden diese oftmals am Anfang des Views gelesen und/oder am Ende des Views geschrieben. Forms werden oftmals am Anfang des Views validiert (sofern man Forms als Eingabe hatte) und oftmals am Ende konstruiert (sofern man Forms ausgibt). Also, hat schon irgendwo eine Reihenfolge, aber so richtig festgeschrieben wann welcher Schritt folgt gibt es nicht, man kann je nach Bedarf die Reihenfolge ändern.

Ein View ist letztendlich eine Funktion. Was du darin machst ist deine Sache, da schreibt dir Django nicht viel vor.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

Ok, danke für die Antwort, mit der Zeit werde ich das schon verstehen.
Antworten