Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
Django
ist ein umfangreiches Webframework für Python und für diese Programmiersprache die wohl meistgenutzte Bibliothek zum Erstellen von Webapplikation. Das Motto von Django lautet:
"Django makes it easier to build better Web apps more quickly and with less code"
auf Deutsch: "Django macht es einfach, bessere Webapplikation mit weniger Code zu schreiben". Django bringt von Hause aus unter anderem die folgenden Komponenten mit:
Datenbankanbindung an SQL-Datenbanken via ORM (Object Relational Mapper)
automatisches, webbasiertes Admin-Interface zum Zugriff auf die Datenbank
eigene Vorlagen-Sprache ("Template system")
Bibliothek zum Umgang mit Formularen ("HTML forms")
diverse Sicherheitsmechanismen (z.B. Schutz vor "Cross site scripting" und "Cross site request forgery")
eigenes Cache-Framework
Möglichkeiten zur Internationalisierung
über Module erweiterbar
Django ist dabei so modular aufgebaut, dass andere Komponenten/Bibliotheken auch problemlos genutzten werden können (z.B. ein anderes ORM). Die aktuellen Django-Versionen laufen sowohl mit Python 3.2 oder neuer als auch Python 2.7.
Ähnlich wie bei Ubuntu gibt es bei Django auch alle 2 Jahre eine LTS-Version (LTS = Long Term Support), welche drei Jahre lang mit Updates versorgt wird. Außerdem soll ein Upgrade von LTS- zu LTS-Version ohne größere Probleme vonstatten gehen. Die aktuelle LTS Version ist Django 1.8 (erschienen im April 2015), die nächste LTS-Version wird 1.11, welche für April 2017 geplant ist. Nicht-LTS Version von Django erhalten dagegen nur neun Monate Support.
Nur am Rande: Inyoka, die Plattform von ubuntuusers.de, setzt übrigens auch in weiten Teilen auf Django.
Django ist in den offiziellen Paketquellen vorhanden, allerdings in einer nicht-aktuellen bis veralteten Version (je nach Ubuntu-Version). Das Paket heißt[1]:
python-django
mit apturl
Paketliste zum Kopieren:
sudo apt-get install python-django
sudo aptitude install python-django
Von daher empfiehlt es sich, die aktuelle Version über pip zu installieren[2]:
sudo pip3 install django # für Python 3
Fremdsoftware kann das System gefährden.
Je nach Einsatzzweck (z.B. Testen von Modulen für Django), empfiehlt es sich, Django in einem virtual environment zu installieren.
Django benötigt zum Betrieb eine SQL-Datenbank. Standardmäßig wird SQLite eingesetzt, welches Python bereits an Bord hat, so dass hier keine weiteren Installationsschritte nötig sind. Möchte man für ein größeres Projekt lieber z.B. PostgreSQL oder MySQL einsetzen, so ist zuerst noch der Datenbank-Server als auch das Python-Module für die Datenbankanbindung zu installieren.
Die folgende Beschreibung gilt für Django 1.8. Bei anderen Django-Versionen kann das vorgehen eventuell (etwas) anders sein. Des weiteren wird davon ausgegangen, dass Django SQLite als Datenbank benutzt. Beim Einsatz anderer Datenbanken sind weitere Konfigurationsschritte notwendig. Außerdem kommt Python 3 zum Einsatz. Für Python 2.7 sind einfach alle python3
Aufrufe durch python
zu ersetzen.
Um eine Webapplikation mit Django zu erstellen, wird zuerst ein Projekt angelegt. Diese kann grundsätzlich in jedem beliebigen Verzeichnis liegen. Der Befehl[2]
django-admin.py startproject mein_projekt
legt alle Dateien und Unterverzeichnisse für das Projekt "mein_projekt" im aktuellen Verzeichnis an. Dort liegt jetzt ein Unterverzeichnis namens mein_projekt, welches die Datei manage.py sowie ein weiteres Verzeichnis mein_projekt enthält. Letzteres enthält die Grundkonfiguration des Projekts in der Datei settings.py, die zentrale Datei für das URL-Routing url.py sowie eine Datei wsgi.py. Die zuvor genannten Datei manage.py dient zum "Steuern" von Django (wie z.B. zum Anlegen von Applikation, Datenbankmigration, Starten des Entwicklungsservers etc.)
Wie gesagt wird in der Datei url.py das URL-Routing des Projekts festgelegt, d.h. es wird bestimmt, welche Python-Funktion beim Aufruf welcher URL ausgeführt wird. Eine vollständige Übersicht über die Nutzung und Möglichkeiten sind in der offiziellen Dokumentation zu finden.
Als nächstes wird die Datenbank angelegt, welche später die Datenmodelle als auch einige von Django benötigte Tabellen enthält. Dazu gibt man in dem Verzeichnis, in dem die Datei manage.py liegt, folgenden Befehl ein:
python3 manage.py migrate
Startet man jetzt den Entwicklungsserver von Django über
$ python3 manage.py runserver
und ruft im Browser die Seite http://localhost:8000
, so sollte man die "It worked!" Seite von Django sehen - und weiß, dass die eigene Django-Installation grundsätzlich funktioniert.
Ein Django-Projekt kann aus ein oder mehreren Applikation bestehen. Zum Anlegen einer Applikation namens "app1" dient der folgende Befehl:
python3 manage.py startapp app1
Jetzt legt Django ein Verzeichnis app1 an, worin sich unter anderem die Dateien models.py und views.py befinden.
In der Datei models.py können die Datenmodelle in Form von Python-Klassen für die Applikation angelegt werden. Für jede Klasse wird dann später eine eigene Tabelle in der Datenbank generiert.
In der Datei views.py werden die Funktionen definiert, welche in der Datei urls.py eine URL zugeordnet sind. Hier werden also die Inhalte generiert, die später an den Webbrowser zurück geliefert werden.
Ein vollständiges Beispiel für ein Django-Projekt mit einer Beispielapplikation würden hier zu weit führen.
Als Einführung ist aber das 6-teilige Tutorial in der offiziellen Django-Dokumentation absolut empfehlenswert.
Ein zweites, für Einsteiger sehr gut geeignetes Tutorial ist Django for girls (ab Kapitel 5). Entgegen dem Titel kann dieses Tutorial auch bedenkenlos von Männern gelesen werden.
Wie in der Einleitung bereits erwähnt gibt es für Django eine sehr große Anzahl von Modulen, die die Funktionen des Frameworks noch erweitern. Eine gute Anlaufstelle hierfür ist die Seite djangopackages , welche eine Vielzahl von Modulen auflistet und nach Kategorien sortiert.
offiziellen Dokumentation zu Django 1.8. Sehr strukturiert, ausführlich und mit vielen Beispielen
Django for girls - sehr empfehlenswertes Tutorial
Diese Revision wurde am 25. März 2016 20:02 von noisefloor erstellt.