Seite 1 von 1
Config Files - templates?
Verfasst: Mittwoch 1. August 2007, 22:39
von thelittlebug
Hi
Nach langer (anstrengender) Pause bin ich mal wieder hier und mir fällt nichts besseres ein als eine Frage zu stellen. Ich bin mir unsicher wo das Thema passt, ich hoffe ich habe es getroffen
Ich komme gerade in den Genuß Typo3 Installationen zu automatisieren, hierfür benötige ich alles mögliche an Configfiles die ich nicht unbedingt so
Code: Alles auswählen
meinergebnis = """
meinetolleapachevariable = %s
""" %meintollerinhalt
erstellen möchte da mir das bei längeren Configteilen zu unübersichtlich wird.
Da dachte ich mir: warum eigentlich keine Template Engine?
Nun gut, die sind ja alle irgendwie so "
fett"
Gibts da nichts schlankeres als die großen für die Webjünger?
thx & lg herby[/code]
Verfasst: Donnerstag 2. August 2007, 07:21
von birkenfeld
Re: Config Files - templates?
Verfasst: Donnerstag 2. August 2007, 07:35
von gerold
thelittlebug hat geschrieben:Code: Alles auswählen
meinergebnis = """
meinetolleapachevariable = %s
""" %meintollerinhalt
[...]
Da dachte ich mir: warum eigentlich keine Template Engine?
Hallo Herby!
Du hast mehrere Möglichkeiten.
Die von dir oben beschriebene:
Code: Alles auswählen
>>> template = """
... variable1 = %s
... variable2 = %s
... """
>>> print template % (10, 20)
variable1 = 10
variable2 = 20
>>>
Dann die etwas übersichtlichere Variante:
Code: Alles auswählen
>>> template = """
... variable1 = %(variable1)s
... variable2 = %(variable2)s
... """
>>> variable1 = 10
>>> variable2 = 20
>>> print template % locals()
variable1 = 10
variable2 = 20
Dann die Variante mit dem eingebauten ``string.Template``:
Code: Alles auswählen
>>> from string import Template
>>> template = """
... variable1 = $variable1
... variable2 = ${variable2}
... """
>>> variable1 = 10
>>> variable2 = 20
>>> print Template(template).safe_substitute(locals())
variable1 = 10
variable2 = 20
>>>
Dann noch die mit Cheetah:
Code: Alles auswählen
>>> from Cheetah.Template import Template
>>> template = """
... variable1 = $variable1
... variable2 = $variable2
... """
>>> t = Template(template)
>>> t.variable1 = 10
>>> t.variable2 = 20
>>> print t
variable1 = 10
variable2 = 20
>>>
mfg
Gerold
Verfasst: Donnerstag 2. August 2007, 11:32
von thelittlebug
Danke gerold und birkenfeld,
ich denke ich werde die lösung mit "string.template" nehmen, scheint genau das zu können das ich wollte:
mein (test)template als datei "template" gespeichert
Code: Alles auswählen
<?
$conf['sowieso'] = 'YaTT (Yet another Template Test)';
$test = 'Hallo ²name';
$joeh[1]['lalelu'] = "Danke für\nden Tipp :)";
?>
der passende python code
Code: Alles auswählen
#!/usr/bin/python
from string import Template
import os
class Tmpl(Template):
delimiter = '²'
print Tmpl(open('template','r').read()).safe_substitute({'name':'birkenfeld und gerold'})
und siehe da, es läuft
ich hab mich für "²" als delimiter entschieden da dieses zeichen kaum wo verwendet wird, und template angeblich schreit wenn leere delimiter in der datei herumliegen.
aber mit dem "²"er kann man das sehr leicht einfach definieren und jeder muss sich daran halten, das ist kaum ne einschränkung.
lgherby