Django ist ein bekanntes Web-Framework, das den Prozess der Erstellung robuster, skalierbarer, sicherer und leistungsstarker Web-Apps rationalisiert. Es ist ein Open-Source-Projekt, geschrieben in Python. Sie können hier weitere detaillierte Informationen zu Django finden.
Jede Web-App benötigt eine Datenbank als Backend zur Datenverwaltung. Django unterstützt verschiedene Datenbank-Engines als Backend, zum Beispiel MySQL, PostgreSQL, SQLite usw. PostgreSQL ist ein leistungsstarkes, quelloffenes objektrelationales Datenbanksystem. Es ist bekannt für seine Zuverlässigkeit, Skalierbarkeit, Sicherheit und seinen robusten Funktionsumfang. Sie können hier mehr über PostgreSQL erfahren.
In dieser Anleitung zeigen wir die Integration von PostgreSQL als Backend in einer Beispiel-Django-App.
Voraussetzungen
Die Arbeit mit Django erfordert bestimmte Systemkonfigurationen.
- Ein ordnungsgemäß konfigurierter Ubuntu 21.04 Server. Erfahren Sie mehr über die Einrichtung eines Ubuntu-Servers.
- Eine Python-Entwicklungsumgebung. Django ist in Python geschrieben, daher wird die Python-Umgebung zur Ausführung benötigt.
- PostgreSQL installiert, da wir es als Datenbankserver für unsere Django-App verwenden werden. Erfahren Sie mehr über die Installation und Konfiguration von PostgreSQL auf Ubuntu hier.
Diese Anleitung zeigt auch, wie Sie verschiedene Python-Module und -Bibliotheken verwenden, die für eine funktionierende Django-App erforderlich sind.
Schritt 1. Installation der notwendigen Komponenten
Damit unser Projekt funktioniert, müssen wir eine Reihe wichtiger Pakete auf unserem Ubuntu-System installieren. Glücklicherweise sind alle direkt aus den offiziellen Ubuntu-Paketquellen verfügbar. Diese Pakete umfassen Python-Komponenten und Datenbank-Komponenten (PostgreSQL).
Öffnen Sie zuerst das Terminal und aktualisieren Sie den APT-Paket-Cache:
|
1 |
sudo apt update |
Installieren Sie als Nächstes die Pakete:
|
1 |
sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib |
Schritt 2. Vorbereitung der Datenbank
PostgreSQL ist nun installiert und einsatzbereit. Als Nächstes werden wir eine dedizierte Datenbank und einen Benutzer für unsere Django-App erstellen. Ein dedizierter Benutzer ist vorteilhaft für die Datenbank- und Rechteverwaltung.
Während der Installation erstellt PostgreSQL einen dedizierten Benutzer postgres. Er besitzt die Berechtigung, alle administrativen Aufgaben in PostgreSQL auszuführen. Greifen Sie auf das postgres Konto zu:
|
1 |
sudo su – postgres |
Sie sollten in einer neuen Shell-Sitzung unter dem Benutzer postgres landen. Öffnen Sie dann eine PostgreSQL-Shell:
|
1 |
psql |
Wir werden nun eine dedizierte Datenbank für unsere Django-App erstellen. Es wird empfohlen, ihr einen Namen zu geben, der zur Django-App passt:
|
1 |
CREATE DATABASE <database_name>; |
Als Nächstes erstellen wir einen dedizierten Datenbankbenutzer. Wir werden diesen Benutzer verwenden, um auf die für Django reservierte Datenbank zuzugreifen:
|
1 |
CREATE USER <username> WITH PASSWORD '<password>'; |
Der nächste Schritt besteht darin, einige Verbindungsparameter für den neuen Benutzer anzupassen. Dies hilft, die Datenbankoperationen zu beschleunigen, da die Werte nicht bei jedem Verbindungsaufbau abgefragt werden müssen. Führen Sie die folgenden Befehle aus:
|
1 2 3 |
ALTER ROLE <username> SET client_encoding TO 'utf8'; ALTER ROLE <username> SET default_transaction_isolation TO 'read committed'; ALTER ROLE <username> SET timezone TO '<timezone>'; |
Hier ist eine kurze Aufschlüsselung dieser Befehle:
-
Wir setzen die Standardkodierung auf UTF-8. Das ist es, was Django bei der Interaktion mit Datenbanken erwartet.
-
Das Standard-Transaktionsschema ist auf „read committed“ eingestellt, sodass Lesevorgänge aus nicht abgeschlossenen Transaktionen blockiert werden.
-
Die Zeitzone sollte entsprechend dem Standort eingestellt werden.
Wenn Sie sich über den Namen der Zeitzone nicht sicher sind, listet der folgende Befehl alle von PostgreSQL unterstützten Zeitzonen auf:
|
1 |
SELECT * FROM pg_timezone_names; |
Erteilen Sie dem neuen Benutzer abschließend die vollen Berechtigungen für die für Django reservierte Datenbank:
|
1 |
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>; |
Unsere Arbeit mit PostgreSQL ist nun abgeschlossen. Beenden Sie die psql-Shell und melden Sie sich aus der postgres Sitzung ab.
Schritt 3. Django installieren
Wir haben den erforderlichen Datenbankserver für unsere Django-App konfiguriert. Nun werden wir die dedizierte Django-App installieren und konfigurieren. Obwohl Django direkt aus dem offiziellen Ubuntu-Repository verfügbar ist, empfehlen wir diese Methode nicht. Dadurch wird Django systemweit installiert. Für eine bessere Flexibilität und einfachere Verwaltung installieren wir Django stattdessen in einer virtuellen Umgebung. Es ist gängige Praxis, Django innerhalb einer virtuellen Python-Umgebung zu installieren und zu konfigurieren.
Python verfügt über ein Modul virtualenv das eine virtuelle Python-Umgebung an einem Zielort erstellt. Die Umgebung erhält eine eigene Kopie der Python-Binärdateien und -Konfigurationen. Änderungen innerhalb der virtuellen Umgebung haben keine Auswirkungen auf den Rest des Systems.
Installieren Sie virtualenv:
|
1 |
sudo apt install virtualenv |
Als Nächstes ist es unser Ziel, ein dediziertes Verzeichnis einzurichten, um die virtuelle Python-Umgebung zu erstellen. Es wird als Grundlage für unsere Django-App dienen. Zur Veranschaulichung lautet der Name unserer App sample_app. Erstellen Sie ein neues Verzeichnis:
|
1 |
mkdir -pv <dir_name> |
Wechseln Sie in das aktuelle aktive Verzeichnis und richten Sie die virtuelle Umgebung ein:
|
1 2 |
cd sample_app/ virtualenv sample_app_env |
Aktivieren Sie danach die virtuelle Umgebung:
|
1 |
source sample_app_env/bin/activate |
Die virtuelle Umgebung ist nun bereit und funktionsfähig. Danach verwenden wir pip, um Django und psycopg2 (einen Python-Adapter für PostgreSQL) zu installieren:
|
1 |
pip install django psycopg2 |
Schließlich können wir mit den Django-Tools ein neues Django-Projekt erstellen. Dadurch wird im aktuellen Verzeichnis ein Unterverzeichnis mit demselben Namen erstellt, das den gesamten Code und ein Verwaltungsskript enthält:
|
1 |
django-admin startproject <project_name> . |
Schritt 4. Konfigurieren des Django-Projekts
Das Django-Projekt verfügt über alle grundlegenden Tools, um als Web-App zu funktionieren. Um es in unsere Datenbank zu integrieren, müssen wir einige Anpassungen in den Konfigurationsdateien vornehmen.
Öffnen Sie die Datei settings.py in einem Texteditor:
|
1 |
nano settings.py |
Scrollen Sie nach unten zum Abschnitt DATABASES. Standardmäßig ist er konfiguriert für SQLite:
Ändern Sie den Code für unsere Zwecke wie folgt:
|
1 2 3 4 5 6 7 8 9 10 |
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': '<db_name>', 'USER': '<db_user>', 'PASSWORD': '<db_user_password>', 'HOST': 'localhost', 'PORT': '', } } |
Hier weisen wir Django an, den Adapter psycopg2 für die Datenbankkommunikation zu verwenden. Wir geben auch alle erforderlichen Datenbankinformationen wie den Datenbanknamen sowie den Benutzernamen und das Passwort des dedizierten Benutzers an.
Wenn Sie fertig sind, speichern Sie die Datei und schließen Sie den Editor.
Schritt 5. Migrieren der Datenbank
Django ist so konfiguriert, dass es auf unsere PostgreSQL-Datenbank zugreift. Wir können nun die Datenstruktur in unsere Datenbank migrieren. In Django wird dies als Migration.
bezeichnet. Um die Datenbankänderungen zu migrieren, rufen Sie das Verwaltungsskript manage.py:
|
1 |
python manage.py makemigrations |

|
1 |
python manage.py migrate |
Erstellen Sie als Nächstes einen Superuser für unsere Django-App:
|
1 |
python manage.py createsuperuser |
Dieses Superuser-Konto wird als Admin-Konto für unsere Django-App dienen.
Schritt 6. Testen der Änderungen
Bisher haben wir mehrere Anpassungen an unserer Django-App vorgenommen. Zeit zu prüfen, ob alles wie gewünscht funktioniert. Wir werden dies überprüfen, indem wir die App starten und das Admin-Panel aufrufen.
Da wir die Django-App lokal entwickeln, starten wir den Server auf localhost. Traditionell starten wir ihn auf Port 8000. Wenn Sie eine Firewall konfiguriert haben, muss diese den Datenverkehr zu Port 8000. Erfahren Sie mehr über die Grundlagen von UFW hier.
Starten Sie den Django-Server:
|
1 |
python manage.py runserver localhost:8000 |
Rufen Sie die URL in einem Browser auf:
|
1 |
http://localhost:8000 |
Sie sollten auf der Erfolgsseite der Django-Installation landen. Um auf die Django-Admin-Seite zuzugreifen, rufen Sie die folgende URL auf:
|
1 |
http://localhost:8000/admin |
Sie müssen den von uns erstellten Superuser verwenden, um sich anzumelden:
Voila! Wir sind erfolgreich im Admin-Panel gelandet!
Wenn Sie mit dem Erkunden fertig sind, drücken Sie Strg + C in der Konsole, um den Django-Server zu stoppen.
Fazit
In dieser Anleitung haben wir erfolgreich die Einrichtung einer Beispiel-Django-App und die Konfiguration von PostgreSQL als Backend demonstriert. Während SQLite in der Regel völlig ausreicht, um die Anforderungen während der Entwicklung (und einer leichten produktiven Nutzung) zu erfüllen, werden die meisten Projekte stark von dem Wechsel zu einem funktionsreicheren DBMS profitieren. PostgreSQL ist eine hervorragende Option für Leistung und Skalierbarkeit.
Django ist ein vielseitiges Web-Framework, das mit zahlreichen Technologien zusammenarbeiten kann. Werfen Sie einen Blick auf weitere Cloud-Anleitungen, die die Verwendung von Django demonstrieren:
- Einrichten von Django mit PostgreSQL, Nginx und Gunicorn auf Ubuntu 20.04
- Erstellen einer Django- und Gunicorn-Anwendung mit Docker auf Ubuntu
- So sichern und skalieren Sie eine Django-Anwendung mit Docker, Nginx und Let’s Encrypt
- Erstellen einer Django-App mit Datenbankverbindung: Ein Tutorial
Viel Spaß beim Programmieren!






















Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.