Pfad: Home / Dokumentation / Entwicklung / Python-Scripte /
Eine Ebene höher

Was sind Python-Scripte?

  • Send this page to somebody
  • Print this page
Ein kurze Einführung.

Übersetzt von http://www.dieter.handshake.de/pyprojects/zope/book/chap3.html#c37ac15c11c12 - FloK

Ein PythonScript besteht aus einer Folge von Befehlen der SprachePython. Das Skript wird aufgerufen, um die Python-Befehle auszuführen. Falls diese einen Wert zurückgeben, so wird er als Ergebnis im Kontext des Aufrufs benutzt. Je nach Kontext kann er als Antwort (RESPONSE) eines WebRequest-s oder als Teil eines weiteren Verarbeitung genutzt oder auch weggeschmissen werden.

Das Skript geht unterschiedliche Wege um die verschiedenen Kontexte anzusprechen. Dazu werden parameters und bindings definiert. Mittels Parametern kommuniziert der Aufrufer mit dem aufgerufenen PythonScript indem er Werte für die Parameter bereitstellt. Die Parameter werden im Skript über ihre Namen angesprochen und während der Ausführung an die bereitgestellten Werte gebunden. Mittels bindings kann man andere Arten Kontext-Information an Namen binden und damit zugreifbar innerhalb des Skripts machen. Die verfügbaren Kontexte sind:

  • Der AcquisitionContext des Aufrufs
  • Das ScriptObject selber
  • Der container des ScriptObject's
  • Der NameSpace des Aufrufers
  • Der SubPath der URL, welcher übrigbleibt wenn ZPublisher während des URLTraversal auf das PythonScript trifft.

Wenn der NameSpace des Aufrufers gebunden ist, so können Parameter indirekt übergeben werden. In diesem Fall werden die Werte für Parameter, die nicht explizit übergeben wurden im NameSpace aufgesucht und automatisch gebunden. Wenn das Skript explizit aufgerufen wurde (nicht durch einen RenderingProcess), so muß der NameSpace explizit als ein KeywordArgument an das Skript übergeben werden.

In PythonScripts kann eine Untermenge (SubSet) von Python verwendet werden, und zwar der Teil, der in einer Umgebung als sicher betrachtet werden kann, in der Skripte über das unsicherMedium des Webs bearbeitet werden können. Während fast alle PythonBefehle verfügbar sind, ist die Menge der BuiltInFunktionen und Module der PythonLibrary beschränkt. Es gibt auch eine unbeschränkte Variante: XXXPythonScript. Da ein Update dieser Scripts über das Web ein ernsthaftes Sicherheitsrisiko darstellt, können sie nur verändert werden wenn Zope mit einer speziellen UmgebungsVariable gestartet wurde.

Python-Skripte werden mit dem manage_addPythonScript - Konstruktor erzeugt.

Created by dzugng
Last modified 09.04.2005 15:21