- Eintrag im Python-Package-Index
- Online-Dokumentation (englisch): für die letzte veröffentlichte Version (PyPI), für die Entwicklungsversion (Read the Docs)
- Projektseite bei Bitbucket: Quellcode (Mercurial-Repository), Fehlerverfolgung
- Lizenz: Zope Public License (ZPL) 2.1
Was ist Ophelia?
Ophelia ist ein Python-Paket, das XHTML-Seiten aus Templates zusammensetzt. Es wird auf einem Webserver eingesetzt und erstellt jede Seite in dem Moment, in dem sie angefordert wird.
- Ophelia vermeidet wiederkehrenden Code.
- Text und HTML-Strukturen, die allen Seiten in einem Verzeichnis gemein sind, werden in einem gemeinsam genutzten Template abgelegt. Aus welchen Templates eine Webseite besteht und wie sie zusammengefügt werden, ergibt sich direkt aus der URL. Dadurch muß nicht einmal für jede Seite erneut notiert werden, welche Templates sie benötigt.
- Ophelia ist dynamisch.
- Templates werden in TAL, der Template Attribute Language von Zope, geschrieben. TAL ist XHTML mit der Möglichkeit, den Inhalt von DOM-Elementen und Attributen aus Kontextvariablen zu holen. Der Kontext wird durch Python-Skripte bearbeitet. Ein Template teilt sich zwar der einfacheren Handhabung halber eine Datei mit dem zugehörigen Skript, dennoch besteht eine saubere Trennung von Python-Code und XHTML-Inhalt.
- Ophelia arbeitet mit Dateien.
- Alle Templates und Skripte liegen im Dateisystem des Servers. Dadurch kann man den Inhalt der Seiten einfacher als in einer relationalen oder Objektdatenbank mit den üblichen Textwerkzeugen bearbeiten und unter Versionskontrolle halten. Andererseits möchte man auf diese Weise sicher keine komplexen Anwendungen programmieren; für viel mehr als »SSI auf Drogen« ist Ophelia nicht zu empfehlen.
Ophelia wird unter anderem eingesetzt, um diese Website auszuliefern. Weitere Anwendungsbeispiele finden sich bei Powered sites.
Verwendung von Ophelia
Wie bringt man Ophelia dazu, Webseiten zu erzeugen, nachdem man es installiert und einige Templates geschrieben hat? Seit Version 0.4 ist Ophelia ausschließlich als WSGI-Anwendung implementiert, die u.a. auf folgende Weise benutzt werden kann:
-
Die Anwendung kann als die Klasse
ophelia.wsgi.Application
direkt in Python-Code benutzt werden. -
Das Paket
ophelia
bringt ein ausführbares Skript mit,ophelia-wsgiref
, welches Ophelia in einem sehr einfachen HTTP-Server laufen läßt (wsgiref
aus Pythons Standardbibliothek). Dieser Server eignet sich zum Ausprobieren und Entwickeln, aber nicht für einen produktiven Einsatz. -
Das Ophelia-Paket enthält eine »Application factory«, mit deren Hilfe
Ophelia mit einer
paste.ini
-artigen Konfigurationsdatei in einen WSGI-Server konfiguriert werden kann.
Die Dokumentation von Ophelia enthält ein kleines Anwendungsbeispiel, das auf dieser Site installiert ist und erläutert wird.
Eine genauere Beschreibung findet sich in der (englischsprachigen) Dokumentation des Projekts.