Kategorien
Webdesign

Rapid Web-Development mit Django, Teil 2

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.

Django

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).

Django Struktur
Django Struktur

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)),
Django Admin
Django Admin

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)

Von Sven Schannak

ist ein leidenschaftlicher Web-Entrepreneur, freiberuflicher Web-Entwickler und stolzer Coding-Monkey.

5 Antworten auf „Rapid Web-Development mit Django, Teil 2“

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…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.