staging.inyokaproject.org

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 Webapplikationen. 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 Webapplikationen mit weniger Code zu schreiben". Django bringt von Haus aus unter anderem die folgenden Komponenten mit:

Django ist dabei so modular aufgebaut, dass andere Komponenten/Bibliotheken auch problemlos genutzt werden können (z.B. ein anderes ORM). Für Django 3.2 (=die aktuelle LTS-Version von Django) wird Python 3.6 oder neuer vorausgesetzt. Ab Django 4.0 wird Python 3.8 vorausgesetzt, bei Ubuntu also 20.04 oder neuer.

Ä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 3.2 (erschienen im April 2021), die nächste LTS-Version wird 4.2, welche für April 2023 geplant ist. Siehe zur Versionierung auch die Download-Seite. 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

aus den Paketquellen

Django ist in den offiziellen Paketquellen vorhanden, allerdings in einer nicht-aktuellen bis veralteten Version (je nach Ubuntu-Version). Das Paket heißt[1]:

  • python3-django

Befehl zum Installieren der Pakete:

sudo apt-get install python3-django 

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

Von daher empfiehlt es sich, die aktuelle Version bzw. die aktuelle LTS-Version manuell zu installieren.

via pip

Der Python Paketmanager pip stellt häufig aktuellere Versionen von Programmen als in den Paketquellen bereit. Folgendermaßen lässt sich das Programm darüber installieren:

pip3 install Django       # Programm wird nur für den aktuellen Nutzer installiert  

Hinweis!

Fremdsoftware kann das System gefährden.

Je nach Einsatzzweck (z.B. Test von Modulen für Django), empfiehlt es sich, Django in einem virtual environment zu installieren.

via git

Weiterhin kann der Quellcode von GitHub bezogen werden. Die einzelnen Schritte der Installation finden sich in der Dokumentation 🇬🇧.

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

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 urls.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 Applikationen 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 15. Dezember 2022 15:29 von karzer erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Webprogrammierung, Python, Programmierung, Internet