Vortrag Zope (Teil 2)
aus LugUM, der freien Wissensdatenbank
Zusammenfassung des Vortrages des Themenstammtisches am 04.06.2005, Referent Luigi Monaco:
| Inhaltsverzeichnis |
Agenda
- Zope Page Templates (ZPT)
- Template Attribute Language (TAL)
- Flußkontrolle
- Phyton-Aurufe
- Vererbung über Folder
Vortragsscript
- Original in 'hnb' geschrieben (s. debian-package-Beschreibung: "Hierarchical notebook Hnb is an ncurses program to organize many kinds of data in one place...")
- # wget http://download.ocanom.com/001.zip
- tal Regeln:
- Format:
- Als Zeilenregelwerk.
- Diese haeufigste Variante bezieht sich auf die durch Tags eingeschlossenen Bereiche der HTML Konstrukte.
- Format:
- <$html $tal>text</$html>
- Als Blockraum.
- Diese Variante wird benutzt wenn tal Ausdruecke wenn man mehrere Ausdruecke en block steuern moechte. Etwa bei Verwendung einer lokalen Variable fuer mehrere tal Anweisungen oder als Bedingungsblock.
- Format:
- <tal:block $ausdruck>
- text
- </tal:block>
- tal Anweisung:
- Die tal Anweisung besteht aus dem Statement mit seinem dazugehoerigen Anweisungsblock sowie der Interpretationsrichtlinie.
- Format:
- $interpretationsrichtlinie tal:$statement $anweisungen
- $interpretationsrichtlinie.
- Die $interpretationsrichtlinie bestimmt wie Zope das Ergebnis aus der Anwendung von $statement und $ausdruck umsetzt. Es gibt Ihrer zwei Varianten: 'structure' und 'text'. Die Variante 'text' ist standardmaessig voreingstellt, 'structure' muss angegeben werden. Diese Angabe ist optional.
- =structure
- Der gewonnene Inhalt wird durch Zope interpretiert.
- =text (standardwert)
- Der gewonnene Inhalt wird direkt eingesetzt.
- $statement.
- $anweisung sind an $statement gebunden und haengen in Ihrer Moeglichkeit davon ab. $statement bestimmen das Verhalten von $ausdruck.
- Einfuegen, Ersetzen:
- tal:content
- Der Inhalt(content) wird durch das Resultat von $anweisung ersetzt.
- <b tal:content= $anweisung>text</b>= <b>$anweisung</b>
- tal:replace
- Der gesamte durch Tags eingeschlossene Bereich wird durch das Resultat von $anweisung ersetzt.
- <b tal:replace= $anweisung>text</b>= $anweisung
- Schluesselworte:
- default
- Der Text welcher ohne tal Anweisung dargestellt werden wuerde, wird verwandt.
- nothing
- Es wird kein Inhalt eingebracht.
- HTML Einfluss:
- tal:attributes
- Das angegebene Attribut wird dem Resultat von $anweisung zugeordnet. Mehrfachzuweisung werden durch ; getrennt.
- <img src='void' tal:attributes= 'src $anweisung'>= <img src='$anweisung'>
- Variablendefinition:
- tal:define
- Format:
- tal:define= '$gueltigkeitsbereich $var $definition'
- Die in $var definierte Variable wird das durch $anweisung erzeugt Resultat zugeordnet. Mehrfachzuweisung werden durch ; getrennt. Angabe des $gueltigkeitsbereiches ist optional, voreingestellt ist 'local'.
- <tal:block tal:define= 'var string:void'>
- <b tal:replace= 'var'>text</b>
- </tal:block>
- = void
- Gueltigkeitsbereich.
- =global
- Die Variable ist ab der Angabe im Skript fuer den HTTP Request bekannt. Veraenderung koennen ueberall an dieser Variable vorgenommen.
- =local (standardwert)
- Die Variable ist nur innerhalt der durch Tags eingeschlossenen Bereiche bekannt.
- Abarbeitungskontrolle:
- tal:condition
- Format:
- tal:condition= '$ausdruck'
- Falls das Resultat aus $ausdruck wahr ist, so wird der tal Ausdruck verwandt.
- tal:omit-tag
- ? Kann durch tal:replace mit 'nothing' ersetzt werden.
- tal:repeat
- Format:
- tal:repeat= '$var $ausdruck'
- Eine Wiederholung ueber der durch $ausdruck returnierten Liste, wobei bei jedem Durchlauf der aktuelle Listenwert der Variable $var zugeordnet wird. Fuer Variable gelten die unter <-Veriablendefinition definierten Gueltigkeitsbereiche.
- Verneinung:
- Moechte man die Ausfuehrung des Ausdrucks bei verneinten Bedingungen erreichen, so kann man dem $ausdruck das Schluesselwort 'not' voranstellen.
- tal:condition= 'not:$ausdruck'
- Fehlerbehandlung:
- tal:on-error
- Format:
- tal:on-error= '$interpretationsrichtlinie $ausdruck'
- Bei Ausgabe eines Fehlers faengt dieser Ausdruck die Systemfehlermeldung ab und gibt das durch $ausdruck erstellte Resultat aus. Der Fehler kann nur abgefangen werden, wenn er in einem durch diesen Ausdruck umfassten Bereicht stattfindet.
Buchempfehlung
Mark Pilgrim, Dive Into Python, Auflage 2004 Apress, ISBN 1590593561
Empfehlung von Luigi!
Online-Version: Dive Into Python (http://www.diveintopython.org)
Inhaltsverzeichnis (http://diveintopython.org/toc/index.html), Rezensionen bei amazon.de (http://www.amazon.de/exec/obidos/ISBN=1590593561), Rezensionen bei amazon.com (http://www.amazon.com/exec/obidos/ISBN=1590593561)
Michael Weigend, Python GE-PACKT, 2. Auflage 2005 O'Relly Verlag, ISBN 3-8266-1512-3
Empfehlung von Luigi: Alles zu Python, kurz und knapp
Inhaltsverzeichnis (pdf) (http://www.mitp.de/imperia/md/content/vmi/1512/1512_inhalt.pdf), Infos & Leseproben vom Verlag (http://www.mitp.de/vmi/mitp/detail/pWert/1512/titel/Python%20GE-PACKT,%202.%20Auflage), Rezensionen bei amazon.de (http://www.amazon.de/exec/obidos/ISBN=3826615123)
