Seite 1 von 1

HTML Template mit billigen StringFormater...

Verfasst: Donnerstag 17. Februar 2005, 15:58
von jens
Eigentlich kann man mit den eingebauten "String Formatting Operations" ( http://www.python.org/doc/lib/typesseq-strings.html ) eine ganz einfaches HTML-Template basteln...

Das dumme ist nur, wenn im HTML-Code ein "%" vorkommt, wie es z.B. beim <table> Tag vorkommen könnte...

Mein billiges Workaround ist es, diese %-Zeichen einfach zu doppeln:

Code: Alles auswählen

HTML = """
<bsp width="100%">%(test)s</bsp>
"""

HTML = HTML.replace('%"', '%%"')

print HTML % { "test" : "jeppp" }
Natürlich könnte man ehr mit XHTML und CSS so hinbekommen, das man %-Angaben nicht benötigt...

Wer hat eine elegantere Möglichkeit für ganz einfaches Templating?

Verfasst: Donnerstag 17. Februar 2005, 16:47
von XT@ngel
Hi,
Es gibt noch die Template Strings
http://www.python.org/doc/lib/node105.html
Ich verwende bei cgi-Scripts PlowPlate ist von dem der jetzt auch am Cheetah Projekt beteiligt ist.

MfG
Andreas

Re: HTML Template mit billigen StringFormater...

Verfasst: Donnerstag 17. Februar 2005, 17:29
von BlackJack
jens hat geschrieben:Mein billiges Workaround ist es, diese %-Zeichen einfach zu doppeln:

Code: Alles auswählen

HTML = """
<bsp width="100%">%(test)s</bsp>
"""

HTML = HTML.replace('%"', '%%"')

print HTML % { "test" : "jeppp" }
Das funktioniert nicht weil Du auch das '%' vor '(test)s' damit entwertest.

Verfasst: Donnerstag 17. Februar 2005, 17:59
von jens
Das stimmt nicht, da ich ja nach '%"' suche und nicht nur nach '%' ;)

Die Template strings scheinen es wohl erst mit Python 2.4 zu geben, oder sehe ich da was falsch??? Oder ist nur die Template class neu in 2.4 ???

Verfasst: Donnerstag 17. Februar 2005, 21:38
von BlackJack
jens hat geschrieben:Das stimmt nicht, da ich ja nach '%"' suche und nicht nur nach '%' ;)
Hab' ich übersehen, entschuldigung. :oops:

Das mit den Templates ist in 2.4 dazu gekommen.