ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Django

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/python.png 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:

Django ist dabei so modular aufgebaut, dass andere Komponenten/Bibliotheken auch problemlos genutzten werden können (z.B. ein anderes ORM). Bis Django 1.11 LTS läuft das Framework sowohl mit Python 3.2 oder neuer als auch Python 2.7. Ab Django 2.0 benötigt man auf jeden Fall Python 3.4, ab Django 2.1 wird Python 3.5 oder neuer vorausgesetzt.

Ä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. Normalerweise soll eine neue LTS alle zwei Jahre im April erscheinen. Die aktuelle LTS Version ist Django 1.11 (erschienen im April 2017), die nächste LTS-Version wird 2.12, welche für April 2019 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.

Installation

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

Befehl zum Installieren der Pakete:

sudo apt-get install python-django 

Oder mit apturl installieren, Link: apt://python-django

Von daher empfiehlt es sich, die aktuelle Version über pip zu installieren[2]:

pip3 install --user django  # für Python 3 

Hinweis!

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.

Benutzung

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.

Hinweis:

Die folgende Beschreibung gilt für Django 1.11. 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.

Ein Projekt anlegen

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.

Eine Applikation anlegen

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.

Vollständige Anleitungen für Beispielapplikation

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.

Django mit weiteren Module erweitern

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.

Diese Revision wurde am 18. Januar 2018 20:09 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Webprogrammierung, Python, Programmierung, Internet