»Ich sage voraus, dass sich das Internet bald zu einer Supernova aufbläht und 1996 katastrophal kollabieren wird.« – Robert Metcalfe
25 Python als serverseitige Programmiersprache im WWW mit Django
In der heutigen Zeit unterscheidet sich die Technik im World Wide Web drastisch von ihren Anfängen: Das rein informative Netzwerk aus statischen HTML-Seiten hat sich zu einer interaktiven Austauschplattform entwickelt, mit der praktisch alles möglich ist. Man kann über das Internet einkaufen, seinen nächsten Urlaub buchen, die Nachrichten verfolgen, seine sozialen Kontakte in Chats oder auf Community-Seiten pflegen oder sogar bei der Gestaltung von Wissensdatenbanken wie der Wikipedia mitwirken.
Alle diese neuen Möglichkeiten verdankt das Internet im Wesentlichen den Programmen, die bei einem Aufruf einer Webseite dynamisch HTML-Code mit den geforderten Daten generieren. Die Webprogrammierung war lange Zeit hauptsächlich eine Domäne für die Scriptsprache PHP [PHP (rekursive Abkürzung von PHP: Hypertext Preprozessor) ist eine Skriptsprache, die für die Einbettung in HTML-Seiten entwickelt wurde. Die Syntax von PHP ist an die Programmiersprache C angelehnt. Nahezu jeder Hosting-Service bietet heute Unterstützung für PHP-Skripte an. ] , die sich in der Vergangenheit – mangels Alternativen – durchsetzen konnte. Scriptsprachen eignen sich deshalb besonders für die Programmierung von Webanwendungen, weil sich die Entwicklungszeiten gegenüber maschinennahen Programmiersprachen erheblich verkürzen lassen, sodass man schnell neue Funktionen einbauen kann. Außerdem ist gerade bei Programmen im WWW die Ausführungsgeschwindigkeit weniger wichtig, da die meiste Zeit in der Regel nach dem Ende des Programms durch die verhältnismäßig langsame Verbindung zwischen Server und Client verloren geht.
Heutzutage ist PHP nicht mehr die einzige serverseitige Programmiersprache, die die oben genannten Kriterien erfüllt. An die Seite von PHP gesellen sich Sprachen wie Perl, JAVA, Ruby und im Besonderen auch Python.
Da Pythons Standardbibliothek nur wenige Module enthält, mit denen sich effiziente Webentwicklung betreiben lässt, wurde für diesen Zweck eine Reihe von sogenannten Webframeworks entwickelt. Das Ziel dieser Frameworks besteht darin, dem Programmierer die immer wiederkehrenden Aufgaben abzunehmen, die sich bei der Erstellung von dynamischen Internetseiten ergeben. Dazu zählen insbesondere:
- die Kommunikation mit dem Webserver
- die Generierung von HTML-Ausgaben durch Template-Systeme
- der Zugriff auf Datenbanken
Im Optimalfall braucht der Entwickler sich nicht mehr um die Besonderheiten der Datenbank und des Servers zu kümmern, sondern kann sich darauf konzentrieren, die Funktionen seiner Anwendung zu implementieren.
Es gibt sehr viele Webframeworks für Python, die alle ihre Vor- und Nachteile haben. Wir werden im Rahmen dieses Buchs ein Framework namens Django behandeln, das sich durch seinen Funktionsumfang, seine Eleganz und seine weite Verbreitung auszeichnet. Um Sie mit den Grundlagen von Django vertraut zu machen, werden wir eine kleine Webanwendung implementieren, die News-Beiträge verwalten kann. Außerdem wird es für die Besucher der Seite möglich sein, Kommentare zu den einzelnen Meldungen abzugeben.
Django ist ein relativ junges Framework, das 2005 zum ersten Mal veröffentlicht wurde. Es ist kostenlos unter der BSD-Lizenz verfügbar und ist besonders für die Entwicklung komplexer, datenbankgestützter Anwendungen konzipiert.
Aufgrund des großen Umfangs von Django werden wir Ihnen in diesem Kapitel nur grundlegendes Wissen vermitteln können. Es gibt aber im Internet sehr viel gute Dokumentation zum Thema Django. Besonders sei Ihnen dabei die Homepage des Projekts, http://www.djangoproject.com, ans Herz gelegt.
25.1 Installation 

Wir werden in diesem Abschnitt die Installation des Moduls Django beschreiben, die notwendig ist, um Django-Anwendungen zu entwickeln. Wie Sie fertige Anwendungen auf einem Webserver der Öffentlichkeit zur Verfügung stellen, können Sie in der Django-Dokumentation auf http://www.djangoproject.org/ nachlesen. [Stichwörter dazu sind Apache-Webserver, mod_python und WSGI. ]
Django befindet sich zum aktuellen Zeitpunkt (Oktober 2007) in einer sehr schnellen Entwicklung. Seit dem letzten offiziellen Release mit der Versionsnummer 0.96 vom 23.03.2007 hat sich Django stark verändert. So wurden viele neue Features hinzugefügt und Fehler beseitigt. Aus diesem Grund raten die Django-Entwickler von der Verwendung der Version 0.96 ab und empfehlen, die aktuelle Entwicklerversion direkt aus dem SVN-Repository [Subversion (SVN) ist ein System, mit dem Entwickler ihren Quellcode komfortabel verwalten können. Außerdem ist es uns als Benutzern der Programme über SVN möglich, auf die aktuellen Quellen zuzugreifen. ] zu laden.
Wegen dieser Empfehlung und der Tatsache, dass Django sich bis zur geplanten Version 1.0 in vielen Punkten von der Version 0.96 unterscheiden wird, haben wir uns entschlossen, die SVN-Version zu beschreiben.
Um auf das SVN-Repository von Django zugreifen zu können, müssen Sie die SVN-Software auf Ihrem Computer installieren. Wenn Sie unter Linux arbeiten, können Sie in der Paket-Datenbank Ihrer Distribution nachsehen. In der Regel sollte sich dort ein entsprechendes Paket finden. Windows-Benutzer finden eine Installationsdatei für SVN auf der Buch-CD.
| Hinweis |
| Wenn Sie Linux einsetzen, ist es nicht unwahrscheinlich, dass Ihre Distribution bereits aktuelle SVN-Snapshots von Django als Paket anbietet. Ist dies der Fall, können Sie besser darauf zurückgreifen und sich so die manuelle Installation ersparen. |
Die Installation von Django erfolgt in den folgenden Schritten:
Herunterladen des aktuellen Quellcodes
Erstellen Sie einen Ordner, in dem Sie den Quellcode von Django abspeichern möchten. Wir haben als Beispiel den Ordner C:\django-svn gewählt. Nun öffnen Sie eine Kommandozeile und navigieren in den neu erstellten Ordner.
Den aktuellen Quellcode können Sie mit der folgenden Anweisung aus dem SVN-Repository laden: [Die Zahl 6525 im Listing wird sich wahrscheinlich von der Ausgabe auf Ihrem Bildschirm unterscheiden, denn es handelt sich dabei um eine Art Versionsnummer. ]
$ svn co http://code.djangoproject.com/svn/django/trunk/ ... Checked out revision 6525.
Das Herunterladen der Daten kann je nach Verbindungsgeschwindigkeit Ihres Rechners einige Zeit in Anspruch nehmen.
Das Django-Modul für Python importierbar machen
Damit Sie den Code nutzen können, muss Python das Django-Modul importieren können. Um das zu erreichen, gibt es mehrere Methoden, die je nach Ihrem Betriebssystem unterschiedlich gut für Sie geeignet sind.
Windows XP
Unter Windows erstellen Sie am besten eine Umgebungsvariable namens PYTHONPATH, die auf den Ordner trunk im Verzeichnis django-svn verweist. Dies können Sie in den Systemeigenschaften erledigen, die sich dadurch öffnen lassen, dass sie mit der rechten Maustaste auf Arbeitsplatz und im erscheinenden Kontextmenü auf Eigenschaften klicken.
Auf der Registerkarte Erweitert klicken Sie dann auf den Button Umgebungsvariablen. Anschließend erstellen Sie die neue Umgebungsvariable durch einen Klick auf den Button Neu oben im sich öffnenden Fenster. Nun können Sie die Werte für die neue Umgebungsvariable eingeben, wobei Sie den Pfad an den Ordner anpassen müssen, in dem Sie den Quellcode von Django gespeichert haben:
Abbildung 25.1 Umgebungsvariable PYTHONPATH anlegen
Nun können Sie Python starten und prüfen, ob Sie django importieren können:
>>> import django
>>>Erscheint keine Fehlermeldung beim Importieren des Moduls django, ist der größte Teil der Konfiguration abgeschlossen.
Linux und Mac OS X
Unter Linux oder Mac OS X setzen Sie am besten einen symbolischen Link auf das Verzeichnis django-svn/trunk/django in den Python-Ordner site-packages. Wo sich site-packages befindet, können Sie folgendermaßen ermitteln:
$ python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
/usr/lib/python2.5/site-packages
Jetzt können Sie den symbolischen Link erzeugen, wenn Sie sich mit der Kommandozeile in dem Verzeichnis befinden, in das Sie den Django-Code heruntergeladen haben:
$ ln -s `pwd`/django-trunk/django /usr/lib/python2.5/site-packages/django
Abschluss der Installation
Wir werden im weiteren Verlauf des Abschnitts das Programm django-admin.py im Verzeichnis C:\django-svn\trunk\django\bin verwenden. Damit Sie nicht immer den kompletten Pfad angeben müssen, sollten Sie das Programm django-admin.py in einen Ordner kopieren, der in der Umgebungsvariable PATH angegeben ist.
Dafür kommt unter Linux beispielsweise der Pfad /usr/local/bin und unter Windows üblicherweise der Pfad C:\Windows infrage.





bestellen





