Colubrid und Templates

Code-Stücke können hier veröffentlicht werden.
Antworten
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Donnerstag 2. März 2006, 06:09

Hab unten mal eine Liste einiger Dekoratoren hinzugefügt, damit man einfaches Templating mit Colubrid verwenden kann: http://wsgiarea.pocoo.org/trac/wiki/Colubrid

Momentan auf der Liste sind Jinja, kid, Cheetah, simpleTAL und clearsilver.

Verwendung etwa so:

Code: Alles auswählen

from colubrid import RegexApplication, execute

class TemplateTest(RegexApplication):
    urls = [
        (r'^$', 'index'),
        (r'^downloads/$', 'downloads')
    ]
    append_slash = True

    @render('index')
    def index(self):
        pass

    @render('downloads')
    def downloads(self):
        downloads = [{'id': 0, 'title': 'testfile.txt'},
                     {'id': 1, 'title': 'blubblub.mpg'}]
        return {
            'downloads': downloads
        }

app = TemplateTest

if __name__ == '__main__':
    execute()
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 2. März 2006, 08:41

Dein Codesnipp macht ohne den eigentlichen Template-Code/decorator-Handler nicht so viel Sinn, zumindest für mich :)

Wer das auch so sieht, schaut sich das an:

http://wsgiarea.pocoo.org/trac/wiki/ColubridAndJinja
http://wsgiarea.pocoo.org/trac/wiki/ColubridAndKid
http://wsgiarea.pocoo.org/trac/wiki/ColubridAndCheetah
http://wsgiarea.pocoo.org/trac/wiki/Col ... dSimpleTal
http://wsgiarea.pocoo.org/trac/wiki/Col ... learSilver


War ich aber jetzt immer noch nicht verstehe... Wo kommt der Template-Code/decorator-Handler hin?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Donnerstag 2. März 2006, 08:48

jens hat geschrieben:War ich aber jetzt immer noch nicht verstehe... Wo kommt der Template-Code/decorator-Handler hin?
Am besten in ein utils modul. Ist aber egal wo, du musst es nur importieren bevor du es verwendest:

Code: Alles auswählen

from myapplication.template import render

@render('index')
def display(req):
    pass
TUFKAB – the user formerly known as blackbird
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 2. März 2006, 09:07

blackbird hat geschrieben:

Code: Alles auswählen

    @render('index')
    def index(self):
        pass
Hi blackbird!

Gratuliere! Colubrid wird immer interessanter -- auch für kleine Projekte. :D

Und jetzt zum Problem: Da ich Dekoratoren erst teilweise verstanden habe, durchschaue ich auch nicht, wie ich Werte an die Dekorator-Funktion übergeben kann.

Die eigentliche Frage ist: Was muss ich innerhalb der Funktion "index" hinschreiben, um z.B. eine Liste mit Werten an den Dekorator zu übergeben, damit man diese Liste in der Vorlage verwenden kann?

Wenn ich innerhalb der Funktion "index" Werte an den Dekorator übergebe, wann wird die Vorlage gerendert und ausgegeben? Sobald "index" durchgelaufen ist?

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 2. März 2006, 09:15

gerold hat geschrieben:Die eigentliche Frage ist: Was muss ich innerhalb der Funktion "index" hinschreiben, um z.B. eine Liste mit Werten an den Dekorator zu übergeben, damit man diese Liste in der Vorlage verwenden kann?
Hi blackbird!

Sorry, ich hätte mir das ganze Beispiel anschauen sollen. Stimmt das so, dass die Rückgabe von "index" an den Dekorator übergeben wird?

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Donnerstag 2. März 2006, 09:18

gerold hat geschrieben:Sorry, ich hätte mir das ganze Beispiel anschauen sollen. Stimmt das so, dass die Rückgabe von "index" an den Dekorator übergeben wird?
Jup. Wenn du ein dict in der Funktion zurückgibtst wird das in den context des templates eingebaut. Wenn nichts zurückgegeben wird bleibt der context unberührt.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 2. März 2006, 10:02

Ich hab PyDown gleich mal angepasst... Funktioniert ganz gut ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten