Seite 1 von 1

Colubrid und Templates

Verfasst: Donnerstag 2. März 2006, 06:09
von mitsuhiko
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()

Verfasst: Donnerstag 2. März 2006, 08:41
von jens
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?

Verfasst: Donnerstag 2. März 2006, 08:48
von mitsuhiko
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

Re: Colubrid und Templates

Verfasst: Donnerstag 2. März 2006, 09:07
von gerold
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
:-)

Re: Colubrid und Templates

Verfasst: Donnerstag 2. März 2006, 09:15
von gerold
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
:-)

Re: Colubrid und Templates

Verfasst: Donnerstag 2. März 2006, 09:18
von mitsuhiko
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.

Verfasst: Donnerstag 2. März 2006, 10:02
von jens
Ich hab PyDown gleich mal angepasst... Funktioniert ganz gut ;)