Ich würde es anders formulieren: Mir ist egal, ob man Programmcode einbauen kann oder nicht, aber ich habe es bislang noch nie benötigt. Bedingungen und Schleifen sowie die Möglichkeit, Fragmente einbetten zu können reicht im Allgemeinen.jens hat geschrieben:Also dann man explizit einen Python Code Bereich festlegt. Darin kann man ganz normalen Python Code rein packen.
Aber wie gesagt, eigentlich bin ich dagegen, das man Programmcode in Template baut...
Die Idee mit dem Python-Code sollte sich doch z.B. für Django recht leicht ergänzen lassen. Irgendwie so:
Code: Alles auswählen
@register.tag
def python(parser, token):
nodelist = parser.parse(('endpython',))
parser.delete_first_token()
return PythonNode(nodelist)
class PythonNode(Node):
def __init__(self, nodelist):
self.nodelist = nodelist
def render(self, context):
# stdout in string umlenken
# exceptions fangen...
exec self.nodelist.render(context) in context
# umgelenkten string ausgeben
Stefan