<dtml-in objectValues>
title: <dtml-var title> <br>
</dtml-in>
Obiges Beispiel könnte z.B. innerhalb eines Zope Ordners aufgerufen
werden. Die Anweisung dtml-in ist eine Schleife. Sie iteriert über
alle Einträge des Ordners und gibt deren Titel aus.
def fooFunction(parameter=None, REQUEST=None):
print "fooFunction called with parameter: %s" % parameter
....
cd $ZOPE_HOME/lib/python
#Eine Datei finden:
find . | grep -i fooDatei
#Eine Funktion in allen Quellen suchen:
grep -rsi 'def myFunction' | less
def fooMethod(self):
ret=[]
ret.append(self.standard_html_header())
ret.append("<b>Das ist nur ein Beispiel</b>")
#Tabelle der Zahlen 0 bis 9 und deren Quadrat
rows=[]
for i in range(10):
rows.append('<tr><td>%s</td><td>%s</td></tr>' % (i, i*i))
rows=''.join(rows) # mache aus der Liste einen String
ret.append("""
Längeren Text kann man so eingeben ....
<table border="1">
<tr> <th>Zahl<th> <th>Quadrat<th> <tr>
%s
</table>
Uhrzeit: %s
""" % (rows, time.time())
)
ret.append(self.standard_html_footer())
return string.join(ret)
Der Einsatz von ZPT ist dann sinnvoll, wenn eine Seite mehr Layout
(HTML) als Logik (Python) enthält.
| Einsatzbereich | Umsetzung | |
|---|---|---|
| Gemeinsames Erstellen von dynamischen Webseiten: Wenn der Inhalt hauptsächlich aus statischen Seiten besteht, können leicht mehrere Leute gemeinsam an den Seiten arbeiten. | Verwenden von DTML bzw. ZPT. Editieren per Web-Browser oder FTP. | |
| Programmierung von individuellen Lösungen: Die Möglichkeit mittels http oder XML-RPC auf eine objektorientierte Datenbank zuzugreifen ist sehr flexibel. | Programmieren von Python Produkten. |
my_template = PageTemplateFile('www/my_template', globals(), __name__='my_template')
Die Datei "www/my_template.zpt" muss existieren.