Ich schlage derzeit immer mal wieder CGI für kleine Webprojekte vor, da CGI ziemlich einfach gebaut ist und man damit innerhalb von wenigen Minuten kleine, dynamische Websites erstellen kann.
Der Vorteil von CGI in dem Sinne ist für mich der, dass sich der Webserver darum kümmert, die Dateien an den Browser auszuliefern. Und das macht er ohne dass ich irgendwo in eine Datei oder in einen Code reinschreiben muss, was er alles ausliefern soll.
Endet eine Datei auf ".py", dann wird diese vom Webserver an Python weiter gegeben um diese Datei zu interpretieren. So kann man ziemlich gut dynamischen und statischen Content mischen.
Genau dieses Verhalten weist auch Zope auf, deshalb arbeite ich auch extrem gerne damit.
Und jetzt zu WSGI. Jedes mal, wenn ich mir ein wenig WSGI-Code durchlese, dann lese ich etwas von irgendwelchen Klassen und von Methoden, die Daten zurück geben und alles ist eine Anwendung, aber wo bleibt die einfache Ausgabe von statischem Kontent? Was mir ebenfalls fehlt, ist die hierarchische Einteilung, etwas was einem normalen Ordner-/Dateisystem ähnelt.
Wie stelle ich mir ein erfolgreiches Web-Framework vor? Hier ein paar Stichworte:
- Einfache Ordnerstruktur nutzbar
- Jede Seite eine eigene Datei
- Trennung zwischen Vorlage und Logik
- Wenn möglich ohne Installation auf einem normalen Webserver lauffähig
- Vorlagenseiten sollen auch dann angezeigt werden können, wenn kein dynamischer Code in der Vorlage steckt.
Das was ich mir unter einem zukünfgig erfolgreichen Web-Framework vorstelle ist wahrscheinlich eine Mischung aus "Python Servlet Engine" und SimpleTal.
Das wäre mir das liebste Konzept: Wenn die Datei "index.pyt" aufgefufen wird, dann wird vorher "index.py" in den Python-Interpreter geladen und mit den daraus resultierenden "__globals__" dieses Aufrufs die Vorlage, die je nach Einstellung TAL oder ein anderes Vorlagensystem sein kann, gerendert.
Code: Alles auswählen
index.pyt --> Dynamischer Content -- Vorlage
index.py --> Dynamischer Content -- Logik
normale_seite.html --> Statischer Content
hallo.gif --> Statischer Content
hallo_welt.pyt --> Vorlage ohne zugeh. Logikteil
Es hat mich öfter schon mal gereizt, so etwas zu schreiben. Etwas, das wie CGI läuft und wenn man es installieren kann, im Hintergrund läuft und dem Apachen die gerenderten Daten ausliefert. Das alles verbunden mit TAL und METAL als Vorlagensprache und dem Konzept aus "Python Servlet Engine", das die Logik in eine eigene Datei auslagert. So etwas würde mir gefallen. Leider komme ich nie dazu, denn bis auf den Punkt "Lauffähig ohne Installieren" bietet mir Zope alles was ich brauche. Und nur dafür, dass ich kein Zope mehr brauche, ein Web-Framework zu programmieren, das war mir immer zu viel.
Und jetzt komme ich dazu, warum ich selten oder nie WSGI vorgeschlagen habe. --> Es war immer ein Mittelding zwischen Zope und CGI für mich. Will ich etwas kleines, das evt. auf jedem Computer laufen sollte, ohne es groß installieren zu müssen, dann bin ich mit CGI am schnellsten. Brauche ich etwas, das mir viel Arbeit durch eingebaute Authentifizierung, Vergabe und Überwachung von Zugriffsrechten, einem eingebauten Vorlagensystem, usw. abnimmt, dann muss ich jedem zu Zope raten.
Jetzt muss ich mal Pause machen. Wie sieht es mit WSGI aus? Wie ist da das Konzept? Kann ich da einzelne Seiten in Dateien auslagern oder muss alles in Klassen geschehen und in eine Gesamtanwendung importiert werden?
lg
Gerold
