Seite 1 von 1

[Werkzeug] Views in einem Paket

Verfasst: Sonntag 11. Januar 2009, 21:23
von derdon
Hallo,
kann mir jemand ein Minimalbeispiel mit Werkzeug zeigen, bei dem es keine views.py (also als Modul) gibt, sondern die views in einem extra Paket gespeichert sind? Ich habe mir das Beispiel Coolmagic und den Code von LodgeIt! angeguckt, aber ich habe beide Beispiele nicht verstehen können. Bei LodgeIt! gefällt mir nicht, dass bei den Views (dort controller genannt), Klassen benutzt werden. Das passt bei LodgeIt! von Semantik sehr gut, aber bei meinem Fall würde OOP bei den Views mehr behindern als helfen. Mein Versuch mit der application.py sieht so aus: http://paste.pocoo.org/show/99141/ . Beachtet werden sollte da vor allem Zeile 35-44. Auf dieser Art funktioniert es nur bei dem Modul views_dummy.py und bei dem Modul content.py teilweise (nur Funktionen, die nicht gewrappt wurden). Bei den Modulen user_management.py und admin.py kann kein Endpoint zugewiesen werden. Im Fehlerfall sieht der Traceback so aus, wobei 'settings' den Namen des Moduls angibt: http://paste.pocoo.org/show/99148/

Ich vermute, dass der Ansatz von mir falsch ist und man das ganze besser lösen kann.

Verfasst: Montag 12. Januar 2009, 07:39
von Darii
Sieht mir eher so aus, als wäre deine Abfrage ``path in (...)`` falsch herum. Dreh das mal um ( ``any(string in path for string in (...))`` ) Deswegen wird dein dummy-Modul aufgerufen, dass kein settings-Attribut hat.

Verfasst: Montag 12. Januar 2009, 08:30
von derdon
Ich habe (mal wieder) zu kompliziert gedacht: Ich bin ncht auf die Idee gekommen, bei der urls.py in den endpoints die "Dotted-Attribut-Notation" zu benutzen, also das modul schon da anzugeben.

Verfasst: Montag 12. Januar 2009, 10:00
von veers
Ich verwende in der Urlmap direkt die views als Endpoint. Finde ich schöner.

- Jonas

Verfasst: Montag 12. Januar 2009, 14:04
von derdon
Genau das war meine Lösung. Vielleicht habe ich mich im vorherigen Post unverständlich ausgedrückt, aber exakt das habe ich gemacht.

Verfasst: Mittwoch 28. Januar 2009, 01:14
von Y0Gi
veers hat geschrieben:Ich verwende in der Urlmap direkt die views als Endpoint. Finde ich schöner.
Meinst du mit "views" direkt deine Controller-Callables? Interessante Idee, aber dann wird's mit der URL-Erzeugung ziemlich unschön und für die URL-Map müssen alle Controller-Module importiert werden.

Ja, ich denke/formuliere in MVC und nicht in MTV ;)

Verfasst: Mittwoch 28. Januar 2009, 09:24
von veers
Ja. Ob ich URL Generierung jetzt für toll oder meist unnütz halten soll weiss ich nicht so recht. Denn sinn sehe ich nur dann wenn bestehende Systeme abgelöst werden müssen. Ansonsten sollte die URL ja immer die selbe bleiben, aber der Code im Hintergrund kann sicher ändern.

- Jonas