[Python-de] Webprogrammierung
Axel Gerke
agerke at service-web.de
Don Okt 7 11:59:21 CEST 2004
Hallo Harald (und der Rest)
Harald Armin Massa wrote:
> ...Aber Deine vorbehalte gegen Content-Management-Sprachen kann ich gut
> verstehen. Ich habe mich an diversen Templating-Systemen versucht, und
> immer wieder festgestellt, daß zwar theoretisch das HTML wunderbar
> gekapselt und Objekte und was auch immer; aber immer eine Sprache zu
> lernen ist....
Vielleicht als kleiner Einblick:
Unter Zope gibt es für Dynamik genau 4 Tag-Attribute, die ich brauche:
- tal:repeat - wiederholt das HTML-Tag so oft, wie Elemente kommen
- tal:content - Erstetzt dn Inhalt des Tags mit dem Inhalt der Variable
- tal:attributes - ersetzt Tag-Attribute mit dem Inhalt
- tal:condition - einzige Logik - prüft etwas
Die kann ich in (fast) jedem HTML-Tag gebrauchen.
Beispiel:
Python-Script "getNames": liefert uns die Logik und das Ergebnis
res=[] # Liste zum iterieren (falls mehrere Ergebnisse folgen sollen)
res = [{'firstname':'Axel'}, {'firstname':'Harald'}] # z.B. aus einer DB
return res
################
HTML-Seite:
<header>...
<body>
<table>
<tr><th>Name</th></tr>
<tr tal:repeat="names here/getNames">
<!--here ist eine Zope-interne Variable, die uns den Ort des
Python-Scripts definiert. names ist eine Laufzeitvariable-->
<td tal:content="names/firstname">Vorname</td>
<!--names ist wieder die Laufzeitvariable und firstname ist der key
aus dem Dict. -->
</tr>
</table>
</body>
Das ganze ist schon ein relativ komplexes Beispiel aber mehr braucht man
wirklich nicht. 4 Attribute sind relativ einfach zu erlernen und werden
als HTML-Tag-Attribute angewand, somit erlene ich nur einen Bruchteil
zusätzlich. Der Rest erfolgt im Python-Script.
Ich hoffe es war transparent, verständlich und konnte etwas Einblick geben.
Gruß
Axel