Wie ich kürzlich schon schrieb, möchte ich eine Artikelserie über das Python Web Framework Django starten. Anfangen möchte ich dabei mit der Installation des Framework auf einem Linux Server, welches wohl auch die am meisten verwendete Kombination sein dürfte.
Django wurde urspünglich als Grundlage eines kommerziellen Backends (Ellington) für eine Onlinezeitung entwickelt und im Juli 2005 als Open Source unter einer BSD Lizenz veröffentlicht. Die Kernkomponenten des Frameworks sind:
- Objektrelationale Definition der eigenen Datenmodelle
- Eine eingebaute Administrationsoberfläche für alle Datenmodelle, auf eigene Bedürfnisse anpassbar in Funktion und Design
- Elegante, saubere, aussagekräftige URL Definitionen, keine kryptischen Zahlenkolonnen die sich niemand merken kann (Suchmaschinen und Leser danken!)
- Eigene, leicht zu erlernende und sinnvolle Template-Sprache (inklusive Vererbung von Templates)
- Caching ist bereits eingebaut, aber nur wenn man es möchte und für welche Teile man es möchte
- Internationalisierung von Webprojekten wird direkt unterstützt
Um diesem Beispiel folgen zu können benötigt man natürlich auch ein paar Dinge. Zum Beispiel sollte man einen Linux Server haben, Python sollte bereits installiert sein und Grundkenntnisse darin sollte man auch haben. Zumindest hilft es ungemein, die Beispiele ein wenig zu verstehen. Wenn man nicht sicher ist, ob Python bereits installiert ist oder welche Version installiert ist, kann man dies mit einem python -V herausfinden. Django selbst benötigt mindestens Python 2.3, welches
man in jeder aktuellen Distribution vorfindet. Unter Debian Stable (Sarge) ist es auch schon die Version 2.3, und Sarge ist nun nicht gerade für die neuesten Pakete bekannt. Unter Debian Testing (Etch) ist mittlerweile die sogar weiter verbreitete Python 2.4 zu bekommen.
Natürlich kann man auch direkt das Paket von http://www.python.org/download/ holen und sich selbst compilieren/installieren.
In diesem Artikel beschreibe ich die Installation der Django Entwicklerversion, die die Versionsnummer 0.95 tragen wird, derzeit aber noch als nicht stabil markiert ist. Dies ist vorwiegend deshalb, weil sich die API noch mal ändern könnte, auch wenn es nicht sehr warscheinlich ist. Die aktuelle Version auf der Homepage ist noch die 0.91. Allerdings wird die Version 0.95 einige Änderungen bringen die eine Anpassung des eigenen Sourcecode nötig machen würde. Deshalb setze ich gleich auf Version 0.95 auf. Im Übrigen wird es warscheinlich auch nicht mehr lange dauern bis die 0.95 als stable veröffentlicht wird. Die Entwicklerversionen selbst laufen allerdings auch sehr stabil, ich habe noch keine negativen Erfahrungen damit gemacht. Ich beschreibe die Schritte auf einer Debian Sarge.
Download und Installation des Django Framework direkt aus dem Subversion Repository:
~/download# svn co http://code.djangoproject.com/svn/django/trunk/ django_src
~/download# cd django_src
~/download# python setup.py install
Nach der Installation sollte also unter /usr/lib/python2.3/site-packages/ entweder ein Verzeichnis mit dem Namen django existieren oder aber ein Symlink auf ein solches Verzeichnis, das zum Beispiel auch unter /usr/lib/django_src liegen kann. Hat man das Verzeichnis direkt aus Subversion kopiert, kann man jederzeit seine Installation mit einem svn update aktualisieren, sofern man im Hauptverzeichnis der Django-Installation steht.
Django Admin Tool
Dort existiert auch das Django-Administrationstool django-admin.py. Mit Hilfe dieses Tools kann man seine Projekte verwalten. Ein kleiner Auszug aus der Hilfe (django-admin.py --help):
~/download# /usr/lib/django_src/django/bin/django-admin.py --help
usage: django-admin.py action [options]
actions:
startapp [appname]
Creates a Django app directory structure for the given app name in
the current directory.
startproject [projectname]
Creates a Django project directory structure for the given project
name in the current directory.
syncdb
Creates the database tables for all apps in INSTALLED_APPS whose
tables haven't already been created.
validate
Validates all installed models.
Damit ist Django installiert und wartet ungeduldig auf seinen ersten Einsatz. Das erste Projekt anlegen und eine Applikation starten werde ich im nächsten Teil dieser Serie.