Das freie Open-Source Framework Django wurde dafür entwickelt, dein Web Development in Python zu beschleunigen und zu vereinfachen. Mit Django kannst du dich auf das wesentliche konzentrieren: Code schreiben. Das Framework stellt dir viele grundlegende Basiselemente die beim Webdevelopment immer wieder auftauchen zur Verfügung. Django unterstützt Developer unter anderem auch beim Vermeiden von gängigen sicherheitsrelevanten Fehlern wie Clickjacking, Cross-Site-Scripting oder SQL-Injection. Viele bekannte Websites wie beispielsweise Bitbucket, NASA und die Website von Mozilla wurden mit dem Django Framework gebaut. Hinter Django steht die Open-Source Django Software Foundation, welche das Projekt entwickelt, betreut und promotet.
In diesem Tutorial zeige ich dir, auf welchen Wegen du das Django Framework in der latest stable Version auf einem VPS mit Ubuntu 18.04 LTS installieren kannst. Nach Abschluss dieses Tutorials hast du mit der Django Entwicklungsumgebung die besten Voraussetzungen um überzeugende dynamische Websites und Webanwendungen zu coden.
So lässt sich Django installieren:
Django mit pip global installieren
Pip (pip installs packages) ist ein Paketverwaltungsprogramm für Python. Mit pip kannst du unkompliziert die aktuelle oder eine bestimmte Django Version global und auf deinem System installieren.
Installation mit pip in einer virtuellen Umgebung
Mit pip und dem Tool virtualenv kannst du Django in einer isolierten virtuellen Umgebung installieren. Diese Methode ist weitaus nützlicher und wohl am verbreitetsten, sie bietet den Vorteil, dass verschiedene Projekte unabhängig voneinander entwickelt werden können, ohne das die gemachten Änderungen deinen anderen Projekte beeinträchtigen können.
Installation der Django Development Version mit git
Wenn du experimentierfreudig bist und die neuesten Features von Django ausprobieren möchtest, kannst du Django über git in der aktuellen Development Version installieren. In der Development Timeline von Django kannst du die aktuelle Entwicklung des Frameworks verfolgen.
Vorbereitungen
Für die Installation von Django sind nur wenige Vorbereitungen notwendig, egal für welchen Installationsweg du dich letztendlich entscheidest. Verbinde dich zunächst per SSH mit deinem VPS und bringe den Server auf einen aktuellen Stand.
apt update -y && apt upgrade -y
Ubuntu 18.04 LTS hat Python3 bereits standardmäßig installiert. Mit folgendem Befehl kannst du die Verfügbarkeit auf deinem Server nochmals testen:
python3 -V
Als Ausgabe solltest du etwa folgendes erhalten:
Python 3.6.5
Nachdem du die Vorbereitungen abgeschlossen hast, kannst du zur jeweiligen Installations Methode über das Inhaltsverzeichnis springen.
Django mit pip global installieren
Führe folgenden Befehl aus, um pip für Python 3 zu installieren:
sudo apt install python3-pip -y
Nach der Installation ist pip über den Befehl pip3 ausführbar.
Damit die Benutzung einfacher wird, kannst du einen symlink von pip3 auf pip erstellen:
which pip3
sudo ln -s /usr/bin/pip3 /usr/bin/pip
Checke ob deine Installation erfolgreich war:
pip --version
Deine Ausgabe sollte in etwa wie folgt aussehen:
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
Nun kann die latest stable Version von Django mit folgendem Befehl über pip installiert werden:
pip install Django==2.1.1
Für die Installation einer abweichenden Version kann im Befehl einfach die Versionsnummer angepasst werden.
Damit ist die Installation abgeschlossen und du kannst überprüfen ob alles erfolgreich gelaufen ist:
python3 -c "import django; print(django.get_version())"
Installation mit pip in einer virtuellen Umgebung
Der flexibelste und gebräuchlichste Weg um Django zu installieren, ist innerhalb einer virtuellen Umgebung oder auch virtual environment. Dies bedeutet, das du deine Django Projekte isoliert und getrennt voneinander entwickeln kannst. Änderungen an deinem aktuellen Projekt beeinträchtigen somit keine anderen Projekte die parallel bearbeitet werden.
Auch für die Einrichtung der virtuellen Umgebung benötigst du zuerst noch den pip Paketmanager für Python.
Mit folgendem Befehl installierst du pip zusammen mit dem Tool virtualenv:
sudo apt install python3-venv python3-pip
Nun bist du in der Lage, für jedes neue Django Projekt von dir eine unabhängige virtuelle Umgebung einzurichten.
Du startest, indem du einen neuen Ordner für ein Projekt anlegst:
mkdir ~/meinprojekt
cd ~/meinprojekt
Im nächsten Schritt, erstellst du eine neue virtuelle Umgebung innerhalb von deinem Projekt Verzeichnis. Im Befehl definierst du die Python Version und den Namen für deine virtuelle Umgebung.
python3.6 -m venv env01
Im Befehl oben, definiert “env01” den Namen, tausche diesen gegen eine aussagekräftige Beschreibung für dein Projekt.
Um Pakete innerhalb der neuen Umgebung installieren zu können, muss diese zunächst wie folgt aktiviert werden:
source env01/bin/activate
Nach dem Ausführen des Befehls, wird dir durch einen geänderten Prompt signalisiert, dass du dich in der virtuellen Umgebung befindest. Dieser sollte nun etwa so aussehen: “(env01) flowy@server-lulhkm4q:~/myprojects$”
Innerhalb deiner aktiven virtuellen Umgebung kannst du pip verwenden, um Django zu installieren:
pip install django
Beachte: Innerhalb einer virtuellen Umgebung, kannst du deine Python Version beim ausführen von pip stets vernachlässigen.
Überprüfe nun mit dem unten eingeblendeten Befehl deine Django Version.
django-admin --version
Virtuelle Django Umgebung verlassen
Zum Abschluss zeige ich dir noch, wie du dein virtual environment verlässt und anschließend wieder aktivierst.
Um die Umgebung zu verlassen führst du einfach “deactivate” innerhalb dieser aus:
(env02) flowy@server-lulhkm4q:~/myprojects$ deactivate
Um die bestehende Umgebung wieder aktiv werden zu lassen, wechselst du in das jeweilige Verzeichnis und führst nachfolgenden Befehl aus:
source env01/bin/activate
Der erste Teil vom Pfad “env01” steht dabei für die von dir selbst vergebene Bezeichnung für das Projekt. Solltest du deine Umgebung nicht mehr benötigen, kannst du sie deaktivieren und das entsprechende Verzeichnis aus deinem Projektordner löschen.
Installation der Django Development Version mit git
Die Development Version von Django kann über git installiert werden.
Bringe auch hierfür zunächst deinen Server auf einen aktuellen Stand und installiere dann pip und das virtualenv Tool für Python:
sudo apt install python3-venv python3-pip
Anschließend überprüfst du, ob git auf deinem System verfügbar ist:
git --version
Installiere danach git, falls dir keine Versionsnummer zurückgegeben wurde mit folgendem Befehl:
apt-get install git
Der nächste Schritt besteht aus dem clonen des Django repositories.
Mit dem clonen der aktuellsten Django Dev Version stehen dir alle up-to-date Features (mit eventuellen Einbußen bei der Stabilität) von Django zur Verfügung.
git clone git://github.com/django/django ~/django-dev
Den Pfad am Ende des Befehls kannst du nach deinen Wünschen anpassen, er bestimmt das Verzeichnis in welches Django gecloned wird.
Danach wechselst du in den neuen Ordner indem sich der Django Clone befindet:
cd ~/django-dev
An dieser Stelle ist der Workflow identisch mit der normalen installation mit einem virtual environment. Erstelle nun eine neue virtuelle Umgebung innerhalb von deinem Projekt Verzeichnis, wobei “env01” im Befehl den Namen definiert.
python3.6 -m venv env01
Tausche diesen gegen eine aussagekräftige Beschreibung für dein Projekt.
Danach aktivierst du die Umgebung:
source env01/bin/activate
Der geänderten Prompt signalisiert dir, dass du dich in der virtuellen Umgebung befindest.
Innerhalb von der aktiven virtuellen Umgebung wird nun Django mit pip installiert.
Die Option -e installiert Django im Modus „editierbar“, was bei der Installation aus der Versionskontrolle erforderlich ist.
pip install -e ~/django-dev
Überprüfe anschließend ob es geklappt hat:
django-admin --version
Damit hast du erfolgreich die aktuelle Development Version von Django auf deinem System installiert.
Django Beispiel Projekt erstellen
In diesem Teil erfährst du, wie du ein erstes Django Beispiel Projekt innerhalb einer virtuellen Umgebung erstellst.
Wechsel dazu zunächst in deinen Projektordner den du im Beispiel —- und — erstellt hast, oder erstelle ein neues Verzeichnis und führe folgende Schritte aus, um eine neue virtuelle Umgebung für deine Django Projekte einzurichten.
Zunächst das neue Verzeichnis für dein Projekt anlegen:
mkdir ~/django-projekt
cd ~/django-projekt
Dann die virtuelle Umgebung mit dem Namen “env01” einrichten, wobei du den Namen mit einem aussagekräftigen Projektnamen, der deinem belieben entspricht, austauschen kannst.
python3.6 -m venv env01
Anschließend aktivierst du deine neue virtuelle Umgebung:
source env01/bin/activate
Nach dem Aktivieren der neuen Umgebung kann nun Django innerhalb dieser installiert werden.
pip install django
Mit Hilfe des command-line Tools django-admin kannst du dein Django Projekt für deine Anforderungen flexibel anpassen. Für einen Überblick was django-admin alles kann, liest du dir am besten die Dokumentation von django-admin und manage.py durch.
Mit dem django-admin Befehl startproject erstellst du ein neues Projekt.
Dieser Befehl legt die notwendige Verzeichnisstruktur mit den essentiellen Dateien manage.py und setting.py an.
Du kannst für dein erstes Projekt einen beliebigen Namen definieren oder einfach “djangoprojekt” übernehmen. Der Punkt im untenstehenden Befehl weist Django dazu an, dein Projekt im aktuellen Verzeichnis anzulegen und somit eine zu verschachtelte Verzeichnisstruktur zu vermeiden.
django-admin startproject djangoprojekt .
Django Einstellungen anpassen
In diesem Abschnitt zeige ich dir nun, wie und wo du wichtige Einstellungen für deine zukünftigen Django Projekte anpasst. Stelle sicher, dass du dich in deiner virtuellen Umgebung befindest.
Die Datei settings.py beinhaltet die Konfiguration für deine Website, du findest sie in deinem Projekt Verzeichnis. Lass uns einige Einstellungen an dieser Datei vornehmen damit du ein Gefühl dafür bekommst. Dazu kannst du einen Editor deiner Wahl verwenden, ich benutze in diesem Beispiel Nano:
nano djangoprojekt/settings.py
In der Datei kannst du beispielsweise die Zeitzone für deine Website festlegen.
Scrolle zum Abschnitt “TIME_ZONE” und ändere die Zeile auf die richtige Zeitzone ab:
TIME_ZONE = 'Europe/Berlin'
Wenn du lieber Deutsch als Sprache verwenden willst, ändere noch folgende Zeile ab:
LANGUAGE_CODE = 'de-ch'
Im nächsten Schritt kannst du bereits einen Pfad für statische Dateien festlegen. Scrolle an das Ende der Datei und füge folgende Zeile direkt unter den Abschnitt “STATIC_URL = ‚/static/‘”:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
ALLOWED_HOSTS anpassen
Damit du deine Website in diesem Beispiel erfolgreich aufrufen kannst, musst du im letzten Schritt die Parameter bei „ALLOWED_HOSTS“ anpassen. „ALLOWED_HOSTS“ ist eine Whitelist von Adressen oder Domainnamen, die für die Verbindung zur Django-Instanz verwendet werden können.
In den eckigen Klammern listest du die IP-Adressen oder Domainnamen auf, die deinem Django-Server zugeordnet sind. Wenn du ‘*’ definierst, bedeutet es das alle Verbindungen zugelassen sind.
Ändere die Zeile innerhalb von der Datei settings.py wie folgt ab und ersetze ‘deine-IP’ mit der IP-Adresse von deinem Cloud-Server.
ALLOWED_HOSTS = ['127.0.0.1', 'deine-IP',]
(Wenn deine Seite später einmal fertig ist und live gestellt werden soll muss die Einstellung “DEBUG = True” auf False gesetzt werden. Lass den Wert für unser Beispiel jedoch wie gehabt. )
Speicher nun die Datei settings.py mit allen vorgenommenen Änderungen ab und schieße deinen Editor.
Datenbank für Django erstellen
In diesem Teil erstellst du eine Datenbank für Django sowie einen Admin-User. Es gibt viele Datenbanken, die du im Zusammenspiel mit Django nutzen kannst: sqlite3, MySQL, Postgres und viele weitere, die sich über ein custom Backend einbinden lassen. In diesem Beispiel verwenden wir sqlite, diese Datenbank ist für übliche Hobby Projekte völlig ausreichend.
Da sqlite3 bereits als Default-Database unter settings.py definiert ist, brauchst du nur folgenden Befehl auszuführen um die Datenbank zu migrieren:
python manage.py migrate
Beachte, dass du dich beim Ausführen des Befehls in deiner virtuellen Umgebung und in dem gleichen Verzeichnis befindest, in dem sich auch die manage.py -Datei befindet.
Lief alles erfolgreich, sollte es in etwa so bei dir aussehen:
Dann noch den Admin-User erstellen, so das du dein Django Admin Interface benutzen kannst. Hierzu verwendest du den createsuperuser Befehl:
python manage.py createsuperuser
Im Anschluss wirst du im interaktiven Prozess nach Username, E-Mail Adresse und einem Passwort für den neuen User Account gefragt.
Damit bist du auch schon mit allen Einstellungen und Vorbereitungen fertig. Im letzten Schritt kannst du testen ob das Aufrufen der Django-Seite klappt.
Django Development Server testen
Nachdem ein User angelegt, die Datenbank migriert und alle Einstellungen vorgenommen wurden, kannst du sehen wie ein frisches Django Projekt aussieht.
Wenn du dann später einmal soweit bist, dass du dein neues Projekt deployen willst, solltest du dir die Deployment Checklist aufmerksam durchlesen. Dieses Beispiel Projekt, sollte so nur für development Zwecke eingesetzt werden.
Falls deine ufw Firewall aktiv ist, gebe zunächst den entsprechenden Port frei, damit dein Django Development von aussen erreichbar ist.
(env01) flowy@server-lulhkm4q:~/django-projekt$ sudo ufw allow 8000
[sudo] password for flowy:
Rules updated
Rules updated (v6)
Jetzt kannst du deinen Server mit folgendem Befehl starten:
python manage.py runserver [deine-IP]:8000
Tausche die Stelle [deine-IP] mit der IP-Adresse von deinem Cloud Server aus.
Und rufe anschließend die IP-Adresse zusammen mit dem entsprechenden Port in deinem Browser auf:
http://deine-ip:8000
In das Django Admin Interface gelangst du über:
http://deine-ip:8000/admin/
Mehr Informationen zur Einrichtung des Admin Interface findest du in der Django Dokumentation > The Django admin site.
Die Django Dokumentation bietet sehr gute Informationen und Hilfestellungen für den Aufbau und die individuelle Einrichtung von deiner Webanwendung.
Deinen Development Server kannst du im Terminal mit
CTRL + C
wieder beenden.
Fazit
Super! In diesem Tutorial hast du gelernt, wie du das beliebte Python Framework Django auf deinem Ubuntu installierst und ein erstes Beispiel-Projekt erstellst. Dein nächster Anlaufpunkt sollte nun die Django Dokumentation sein. Hier erfährst du alles darüber, wie du mit Django dein Python Development beschleunigen und vereinfachen kannst. Django ist ein need-to-know Tool von jedem professionellem Python Entwickler.
Feedback, Anregungen oder Wünsche kannst du jederzeit per E-Mail an uns richten ?