Python und die Webentwicklung Kein Thema ist so umstritten wie die Python Webentwicklung. Einige glauben noch immer, dass es da nichts Gescheites gibt, andere sind davon überzeugt, dass PHP der beste Ansatz ist und nur wenige wissen über alle Details des WSGI-Standards bescheid.

Diese Seite soll erklären, warum Python im Web funktioniert, sehr schnell ist, eine Zukunft hat und überhaupt nicht in den Kinderschuhen steckt.

Wie anfangen?

Für Neueinsteiger ist es oft unübersichtlich, womit man in die Web-Programmierung einsteigen soll. Hier werden Möglichkeiten aufgezeigt.

CGI ist zwar veraltet, doch wegen des einfachen Aufbaus bietet es einen leichten Einstieg. Jedoch sollte man die ersten Gehversuche nicht zu weit treiben; CGI ist nicht gut für den produktiven Einsatz geeignet.

Wer direkt mit etwas Richtigem anfangen möchte, sollte sich nicht auf andere Low-Level Webentwicklung Varianten konzentrieren, sondern sich direkt mit dem WSGI (Webserver Gateway Interface) auseinander setzen.

Die, die es sich einfach machen wollen, sollten direkt zu einem Web-Frameworks greifen. Früher oder später werden es eh die meisten tun. Es bietet sich Django an, da es neben einer großen Community, der ausführlichen Dokumentation, ein verständliches Tutorial (en) bietet.

Bevor man sich mit Webservern wie Apache oder Lighty auseinander setzt, kann man besser mit Python selber einen lokalen HTTP-Server benutzen. Die meisten Frameworks bietet einen kleinen Developer-Server, mit dem man erstmal starten kann.

Framework oder nicht?

Gerade Anfänger möchten am liebsten alles selber machen. Für den Einstieg ist es auch erstmal ok. Man wird allerdings früher oder später feststellen, dass man das Rad gerade neu erfindet. Eine Web-Applikation benötigt immer einige ähnliche Grundkomponenten (z.B. ein Session/User Management oder eine Datenbankanbindung). Wer guten wiederverwendbaren Code programmieren möchte, wird nach einiger Zeit feststellen, dass man sich ein eigenes kleines Framework aufbaut. Wer sehr, sehr viel Zeit hat, fährt damit vielleicht gar nicht so schlecht. Alle anderen sollten aber besser zu einem fertigen Framework greifen.

WSGI

Zunächst einmal muss man wissen, dass bis vor einigen Jahren Python im Web zwar möglich war, aber eine ziemliche Bastelarbeit war. Von diesen Erfahrungen können die trac- und Moin-Entwickler sicher Bände sprechen, auch wenn beide Projekte mittlerweile auch schon WSGI unterstützen.

Aber was ist nun WSGI? WSGI ist ein Standard. Etwas, mit dem man sich als Anwendungsentwickler nicht beschäftigen muss. WSGI sorgt im Grunde einmal für diese Dinge:

Und schon haben wir drei Begriffe, unter denen sich keiner was vorstellen kann. Dabei ist es im Grund ganz einfach. Die Anwendung ist das Framework. Und von denen haben wir ja mittlerweile schon mehr als genug. Der Wrapper ist ein Python-Modul, das eine Anwendung mit dem Webserver kommunizieren lässt. Und eine Middleware ist ein zwischengeschaltetes Modul, das die aus- und eingehenden Daten der Anwendung verändern kann.

Und damit sind wir schon beim Kern der Sache. Diese drei Teile funktionieren bereits wunderbar, es gibt Wrapper für CGI, FastCGI, SCGI, mod_python, AJP, Twisted... und Middlewares gibt es schon für Traceback-Rendering, Session-Systeme, Datenbank-Pools...

Warum soll ich WSGI verwenden?

Die wichtigste Regel: Du sollst es nicht verwenden. Du solltest dir ein Framework schnappen und mit dem arbeiten.

Welches Framework ist das richtige?

Such dir doch eines aus. Auf der Seite zu Web-Frameworks haben wir einige vorgestellt.

Ich will kein Framework

Dann nimm beispielsweise Colubrid, oder schreib dir doch deinen eigenen Request-Handler nach deinen Vorstellungen. So lange er WSGI kompatibel ist, kann es mit anderer Python-Software nahtlos zusammenarbeiten.

Tags: Artikel | Web

Python und die Webentwicklung (zuletzt geändert am 2009-06-17 16:14:14 durch anonym)