Zurück zum Blog

Verwendung von PostgreSQL mit Django auf Ubuntu 21.04 Server

Verwendung von PostgreSQL mit Django auf Ubuntu 21.04 Server

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.

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:

Using PostgreSQL with Django 1

Installieren Sie als Nächstes die Pakete:

Using PostgreSQL with Django 2

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:

Sie sollten in einer neuen Shell-Sitzung unter dem Benutzer postgres landen. Öffnen Sie dann eine PostgreSQL-Shell:

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:

Als Nächstes erstellen wir einen dedizierten Datenbankbenutzer. Wir werden diesen Benutzer verwenden, um auf die für Django reservierte Datenbank zuzugreifen:

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:

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:

Using PostgreSQL with Django 4

Erteilen Sie dem neuen Benutzer abschließend die vollen Berechtigungen für die für Django reservierte Datenbank:

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:

Using PostgreSQL with Django 5

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:

Wechseln Sie in das aktuelle aktive Verzeichnis und richten Sie die virtuelle Umgebung ein:

Aktivieren Sie danach die virtuelle Umgebung:

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:

Using PostgreSQL with Django 6

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:

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:

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:

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:


Using PostgreSQL with Django 7

Erstellen Sie als Nächstes einen Superuser für unsere Django-App:

Using PostgreSQL with Django 8

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:

Rufen Sie die URL in einem Browser auf:

Using PostgreSQL with Django 9

Sie sollten auf der Erfolgsseite der Django-Installation landen. Um auf die Django-Admin-Seite zuzugreifen, rufen Sie die folgende URL auf:

Using PostgreSQL with Django 10

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:

Viel Spaß beim Programmieren!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.