Python Module

Dieses Dokument beschreibt die fortgeschrittenen Konzepte von Page Templates. Das Dokument wurde mit Microsoft Word erstellt und mit WordXML automatisch in XML , HTML und HTMLHelp (.chm) konvertiert. Mit WordXML, dem Word-PlugIn der struktur AG, erweitern Sie Microsoft Word zu einem leistungsfähigen XML-Werkzeug.


Python Module

Die Sprache Python wird mit einer Menge von Modulen geliefert, die Python-Programmen einen großen Funktionsumfang bereitstellen. Jedes Modul ist eine Sammlung von Python-Funktionen, Daten und Klassen zu einem bestimmten Zweck, wie beispielsweise mathematische Berechnungen oder reguläre Ausdrücke.

Verschiedene Module, wie ’math’ oder ’string’, sind standardmäßig in Python-Ausdrücken verfügbar. Beispielsweise kann der Wert von ( aus dem ’math’-Modul ausgelesen werden mit ’python:math.pi’. Um von einem Pfad-Ausdruck darauf zuzugreifen, muß aber die ’modules’-Variable verwendet werden. Die Formulierung lautet ’modules/math/pi’. In „The Zope Book“ oder entsprechenden DTML-Tutorials findet sich mehr Information zu diesem Thema.

Das ’string’-Module ist in Python-Ausdrücken durch die ’string’-Ausdruckstyp Funktion verdeckt, also muß hier nicht über die ’modules’-Variable zugegriffen werden. Dies kann direkt in dem Ausdruck geschehen, in dem es verwendet wird. Oder man deklariert eine globale Variable wie folgt:

tal:define=“global mstring modules/string“

tal:replace=”python:mstring.join(slist, ‘;’)”

Module können in Pakete (packages) zusammengefaßt werden. Dies ist einfach eine Möglichkeit, zusammengehörige Module zu gruppieren und zu benennen. Zum Beispiel sind alle Python-basierten Skripte in Zope in einem Unterpaket „PythonScripts“ des Pakets „Products“ zusammengefaßt. Insbesondere bietet das Standard-Modul in diesem Paket eine Reihe nützlicher Formattierungsfunktionen die im DTML-Var-Tag standard sind. Der vollständige Name dieses Moduls ist „Products.PythonScripts.standard“. Mit den folgenden Anweisungen kann also darauf zugegriffen werden:

tal:define=“pps modules/Products/PythonScripts.standard“

tal:define=”pps python:modules[‘Products.PythonScripts.standard’]

Auf die meisten Python-Module kann über Page Templates, DTML oder Skripte solange nicht zugegriffen werden, bis ihnen Sicherheitserklärungen („security assertions“) hinzugefügt worden sind. Dies übersteigt jedoch den Umfang dieses Dokuments und wird im „Zope Security Guide“ erläutert.