[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