Beispiel #1
#!/usr/bin/env python
# -*- coding: utf8 -*-
from string import Template
print "Content-type: text/plain\n\n"
t = Template("Mein Name ist $vorname $nachname.")
print t.substitute(vorname="Max", nachname="Mustermann") # Ausgabe: Mein Name ist Max Mustermann.
print t.substitute(nachname="Mustermann", vorname="Max") # Ausgabe: Mein Name ist Max Mustermann.
Beispiel #2 - Werte für Platzhalter als Dictionary übergeben
#!/usr/bin/env python
# -*- coding: utf8 -*-
from string import Template
print "Content-type: text/plain\n\n"
t = Template("Mein Name ist $vorname $nachname.")
werte = {"vorname": "Max", "nachname": "Mustermann"}
print t.substitute(werte) # Ausgabe: Mein Name ist Max Mustermann.
Beispiel #3 - weniger Werte als Platzhalter
Werden der Methode
substitude() weniger Parameter übergeben als Platzhalter in der Vorlage (Template) vorhanden sind, dann wird eine KeyError-Exeption geworfen. Dies kann man umgehen, indem man die Methode
save_substitude() verwendet.
#!/usr/bin/env python
# -*- coding: utf8 -*-
from string import Template
print "Content-type: text/plain\n\n"
t = Template("Mein Name ist $vorname $nachname.")
print t.safe_substitute(vorname="Max") # Ausgabe: Mein Name ist Max $nachname.
Beispiel #4 - Name des Platzhalters in geschweiften Klammern
Folgt gleich im Anschluß auf den Namen des Platzhalters weiterer Text, muss der Name des Platzhalters in geschweifte Klammern gesetzt werden.
#!/usr/bin/env python
# -*- coding: utf8 -*-
from string import Template
print "Content-type: text/plain\n\n"
t = Template("${anzahl}mal")
print t.substitute(anzahl="5") # Ausgabe: 5mal
Beispiel #5 - Dollar-Zeichen in der Vorlage (Template)
Möchte man das Dollar-Zeichen unabhängig von den Platzhaltern in einer Vorlage (Template) verwenden, dann muss man dafür zwei Dollar-Zeichen schreiben.
#!/usr/bin/env python
# -*- coding: utf8 -*-
from string import Template
print "Content-type: text/plain\n\n"
t = Template("Der Preis sollte $$$preis nicht übersteigen.")
print t.substitute(preis="100") # Ausgabe: Der Preis sollte $100 nicht übersteigen.