Kommen wir nun also zum zweiten Teil unserer Django-Reihe. Sie erinnern sich. Wir wollen eine Anwendung zur Verwaltung von Ferienimmobilien entwickeln. Im ersten Teil hatten wir uns mit Django-Grundlagen beschäftigt. Heute soll es richtig los gehen. Voraussetzung hierfür ist, dass man ein lauffähiges Debian oder besser Ubuntu, zum Beispiel in einer virtuellen Maschine, aufgesetzt hat und dass man weiß, wie man die Shell bzw. das Terminal in Linux bedient. In der VM soll anschließend Django in seiner eigenen Umgebung laufen und die erste Anwendung starten.
Als erstes Tool installieren wir “virtualenv“. Wie der Name schon verrät, handelt es sich hierbei um eine virtuelle Umgebung (virtual environment). Für unser Projekt wollen wir eine Art “Container” schaffen, in dem wir Pakete für Python installieren können, ohne in Konflikt mit anderen Python- bzw. Django-Anwendungen zu kommen. Es ist nicht selten, dass man mehrere Django-Anwendungen auf einem Server laufen hat. Eine vielleicht in der Version 1.2, die andere schon in 1.4, welche die aktuelle Version ist. Da Python auf einfachem Wege aber immer nur eine Version eines Moduls oder einer Bibliothek zur Verfügung stellen kann, benötigen wir hier virtualenv.
Installieren und Einrichten einer virtuellen Umgebung für Django
Zum Installieren von “virtualenv” benötigen wir ein weiteres Paket: “pip“. PIP ist ein Paketverwaltungssystem für Python-Anwendungen. Mit Hilfe von PIP ist möglich, neue Pakete leicht zu installieren, up-to-date zu halten und zu löschen. Dazu braucht man die Shell, auf welcher man folgendes eingibt:
sudo apt-get install python-pip python-dev build-essential sudo pip install --upgrade pip
Damit sollte PIP nun installiert sein. Um “virtualenv” zu installieren, verwenden wir folgenden Befehl:
sudo pip install --upgrade virtualenv
Nun stehen bereits PIP und virtualenv zur Verfügung. Der nächste Schritt ist das Einrichten der virtuellen Umgebung. Dazu erstellen wir zuerst eine virtuelle Umgebung und installieren anschließend die nötigen Pakete. Zuerst legen wir einen Ordner an, der alle virtuellen Umgebungen erfasst. Das kann zum Beispiel im Homeordner erfolgen. Anschließend wechseln wir in diesen Ordner und führen folgenden Befehl aus:
virtualenv --distribute fewoverwaltung
Damit haben wir eine virtuelle Umgebung für die Anwendung geschaffen. Der nächste Schritt besteht in der Einrichtung. Hierzu installieren wir Django, nachdem wir in die virtuelle Umgebung gewechselt sind, mit folgenden Befehlen:
source /pfad/zum/verzeichnis/fewoverwaltung/activate
Anschließend kommt noch Yolk hinzu, das einem eine Listenansicht aller installierten Pakete zurückgibt:
pip install yolk
Um die Installation von Django abzuschließen, fehlt natürlich noch Django selbst:
pip install Django
Wenn man mehr als ein paar Pakete installiert, sollte man regelmäßig eine requirements-Datei erstellen, in der alle genutzten Pakete gelistet sind, zur einfachen Wiederverwendung. Das können Sie mit folgenden Befehlen realisieren:
pip freeze > /tmp/requirements.txt
Diese Datei kann man dann z.B. in einem anderen Environment nutzen, um dort alle nötigen Pakete zu installieren:
pip install -r /tmp/requirements.txt
Soviel zur Vorbereitung. Nun steht uns Django in einer virtuellen Umgebung auf einem virtuellen Server zur Verfügung.
Django – das erste Projekt
Um die Entwicklung der Anwendung zu beginnen, wechseln wir zunächst in das richtige virtualenv und legen anschließend ein erstes Django-Projekt an:
django-admin.py startproject fewo
Damit haben wir unter dem Namen fewo unser erstes Django-Projekt angelegt. Im Verzeichnis sollte nun ein Ordner namens fewo existieren. In diesem Ordner befinden sich alle nötigen Dateien für Django. Die Ordnerstruktur wiederum hat sich mit Version 1.4 geändert. Im Hauptordner befindet sich die manage.py-Datei, eine Datei, von der wir noch oft Gebrauch machen werden. Im Unterordner fewo befinden sich die Dateien für die Einstellungen(settings.py), die Datei für den URL-Dispatcher (urls.py) und eine Datei, die hauptsächlich für das Deployment benötigt wird (wsgi.py).
Eine Anwendung in Django setzt sich wiederum aus mehreren Apps zusammen, eine weitere App wird auch für dieses Projekt benötigt. Nennen wir sie einfach “buchungen”. Um sie anzulegen, müssen wir uns im Hauptordner befinden und folgende Befehle ausführen:
python manage.py startapp buchungen
Der Befehl legt einen neuen Ordner mit der Bezeichnung buchungen an. In diesem Ordner befinden sich Dateien um die Modelle, Tests und Views anzulegen.
Admin-Interface von Django nutzen
Um das integrierte Admin-Tool von Django zu nutzen, öffnen wir die Datei settings.py und entfernen unter INSTALLED_APPS den Kommentar vor django.contrib.admin. Anschließend müssen in der selben Datei noch die nötigen Daten zur DB-Verbindung eingetragen werden. Der folgende Code führt eine Datenmigration der Admin-Daten zur Datenbank aus und legt einen neuen User an:
python manage.py syncdb
In der Datei urls.py sollten noch bei folgenden Zeilen die Kommentare entfernt werden:
from django.contrib import admin admin.autodiscover() url(r'^admin/', include(admin.site.urls)),
Jetzt ist unsere Anwendung bereit für den ersten Start. Das geht dank des integrierten Testservers relativ einfach mit:
python manage.py runserver AKTUELLE_IP:8000
Natürlich sollte AKTUELLE_IP durch die aktuelle IP des Servers ersetzt werden. Nun läuft auf PORT 8000 unseres Servers unsere Anwendung . Über AKTUELLE_IP:8000/admin erreichen wir das Admin-Interface.
Fazit
Ich bin ganz ehrlich und sage, dass das Pensum dieses Beitrags sogar für erfahrene Entwickler durchaus zu viel sein könnte. Und das Einrichten einer virtualenv ist auch nicht Bedingung zum Starten der ersten Anwendung. Ich halte es jedoch für sinnvoll und halte es auch selbst so, gleich von Beginn an sauber und übersichtlich, ohne Weglassungen zu arbeiten. Ich kann aus meiner Erfahrung sagen: Es lohnt sich.
Mittlerweile läuft die erste Anwendung und wir haben Django installiert. Im nächsten Teil legen wir das Model an und ich gehe etwas tiefer auf den URL-Dispatcher, Templates und Co. ein.
Den ersten Teil des Django-Workshops finden Sie hier.
(dpe)
Sven Schannak
ist Webentwickler am Fraunhofer IGD-R, freiberuflicher Web-Enthusiast und Student der Wirtschaftsinformatik an der Uni Rostock.





Hallo,
Tolles Tutorial!
..hat einen kleinen Fehler – es muss nicht
source /Pfad/zur/Anwendung/fewoverwaltung/activate heißen sondern
source /Pfad/zur/Anwendunf/fewoverwaltung/bin/activate
Gruß,
Jonas Krauss
Vielen Dank für das tolle Tutorial! Leider sind viele Tutorials im Netz total oberflächlich, das ist hier anders! Super tolle Qualität weiter so…