Skip to content

Django Installation

Django

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 python.org 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:

  1. ~/download# svn co http://code.djangoproject.com/svn/django/trunk/ django_src
  2. ~/download# cd django_src
  3. ~/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'):

  1. ~/download# /usr/lib/django_src/django/bin/django-admin.py --help
  2. usage: django-admin.py action [options]
  3. actions:
  4.  
  5.   startapp [appname]
  6.     Creates a Django app directory structure for the given app name in
  7.     the current directory.
  8.  
  9.   startproject [projectname]
  10.     Creates a Django project directory structure for the given project
  11.     name in the current directory.
  12.  
  13.   syncdb
  14.     Creates the database tables for all apps in INSTALLED_APPS whose
  15.     tables haven't already been created.
  16.  
  17.  validate
  18.    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.

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

Uwe Wagner on :

Hallo,
es wäre nett, wenn sich jemand findet, der eine Installationsanleitung für WinXP schreibt.
Möglichst auch unter Berücksichtigung, daß der Internet Zugang während der Installation nicht zur Verfügung steht (Firewall).

U.W.

Marco on :

gute Idee. Unter Windows finde ich die Installation eher noch einfacher als unter Linux - ich schreibe die Tage dann mal eine Anleitung dazu.

Uwe Wagner on :

Na, wirds denn :-)

Im Ernst: stehe vor der Entscheidung für ein Projekt ein Framework nutzen zu müssen.
Mit dem bisher verwendeten php bin ich nicht mehr so glücklich. Würde gern auch ein Python basiertes Framework prüfen (auch weil unsere EDV python unterstützt).

Und nun frisch ans Werk ...

Uwe

Andreas on :

es geht auch einfacher mit "dpkg -i" und den packages python-django und python-support

Pascal on :

Netter Artikel - noch netter würde er werden, wenn du erzählen würdest, wie man Python(-Frameworks) auf Produktionsservern einsetzt. Mich würde sehr interessieren, wie ich "meine Python Website" auf meinem Linux-Server (Apache als Webserver) zum Laufen bekomme. Benutze ich FastCGI oder mod_python? Oder verwende ich gar einen zweiten Webserver, auf den Apache redirectet? Worauf muss ich beim Transfer der Entwicklungsversion auf den Produktionsserver achten? Usw... :-)

Marco on :

Zumindest ein Teil der von dir angesprochenen Themen folgt im nächsten Teil. Der kommt bald :-).

Add Comment

Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.
BBCode format allowed
You can use [geshi lang=lang_name [,ln={y|n}]][/geshi] tags to embed source code snippets.
Form options
tweetbackcheck cronjob