Python‎ > ‎

Template-System des Moduls string


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.