HTML Template mit billigen StringFormater...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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?
XT@ngel
User
Beiträge: 255
Registriert: Dienstag 6. August 2002, 14:36
Kontaktdaten:

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
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.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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 ???
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.
Antworten