Zurück zum Blog

Erstellen einer Django-App mit Datenbankverbindung: Ein Tutorial

Erstellen einer Django-App mit Datenbankverbindung: Ein Tutorial

Django ist ein freies und quelloffenes Web-Framework, das in Python geschrieben ist. Django wurde erstmals 2005 veröffentlicht und verkörpert das Motto „schnelle Entwicklung und sauberes, pragmatisches Design“. Das auf einem Webserver bereitgestellte Framework kann schnell ein Web-Frontend mit umfangreichen Funktionen, Sicherheit und Skalierbarkeit erstellen.

Jede Web-App ist für ihre Inhalte auf Datenbanken angewiesen. Als modernes Framework unterstützt Django eine Reihe von Standard-Datenbankprogrammen, zum Beispiel PostgreSQL, SQLite, MySQL, etc. Diese Anleitung zeigt, wie man eine Django-App mit einer MySQL-Datenbank verbindet.

Voraussetzungen

Um diesem Tutorial zu folgen, müssen Sie bestimmte Voraussetzungen erfüllen, bevor Sie mit Django und der Datenbankverbindung fortfahren:

Installation und Konfiguration von Python 3

Django ist in Python geschrieben. Um eine Python-App auszuführen, müssen die Python-Binärdateien im System installiert sein. Bei Ubuntu ist Python standardmäßig vorinstalliert. Hier verwenden wir Python 3. Führen Sie im Terminal die folgenden Befehle aus. Aktualisieren Sie zuerst den APT-Cache und aktualisieren Sie (falls verfügbar) alle installierten Pakete:

Python 3 ist direkt über die offiziellen Ubuntu-Paketserver verfügbar. Das Paket python-is-python3 erstellt einen symbolischen Link für die python-Binärdatei auf python3 zur einfacheren Verwendung:

Überprüfen Sie als Nächstes, ob die Installation erfolgreich war:

Danach benötigen wir pip. Dies ist der Standard-Paketmanager für Python. Er ist für die Verwaltung zusätzlicher Python-Bibliotheken zuständig, die nicht Teil der Standardbibliothek sind. Beachten Sie, dass wir pip3 (für Python 3) installieren:

Schließlich benötigen wir noch einige zusätzliche Pakete für eine robuste Programmierumgebung:

Installation und Konfiguration von MySQL

In diesem Abschnitt wird kurz die Installation und Konfiguration von MySQL demonstriert. Es ist in den Standard-Paketquellen von Ubuntu verfügbar:

Wenn die Installation erfolgreich war, läuft MySQL im Hintergrund. Überprüfen Sie, ob es ordnungsgemäß funktioniert:

Django App 1

Der MySQL-Server läuft. Wir können nun sicher zur Entwicklung unserer Django-App übergehen.

Arbeiten mit Django

  • Erstellen der Beispiel-Django-App

Das Grundgerüst unserer Web-App erfordert das Django-Projektskelett. Es enthält alle notwendigen Werkzeuge und Bibliotheken, die zur Erstellung einer robusten Web-App erforderlich sind. Zuerst erstellen wir ein eigenes Verzeichnis für unsere Django-App. Es wird empfohlen, dem Verzeichnis einen aussagekräftigen Namen zu geben, der zur App passt, die wir erstellen wollen. In dieser Demonstration nennen wir es myDemoApp:

Wir benötigen das Python-Modul venv, um eine virtuelle Umgebung im Verzeichnis zu erstellen. Installieren Sie das Modul mit APT:

Navigieren Sie dann in das Verzeichnis und erstellen Sie eine virtuelle Umgebung. Der Übersichtlichkeit halber nannten wir die Umgebung demoapp_env:

Aktivieren Sie als Nächstes die virtuelle Umgebung, indem Sie das activate-Skript ausführen:

Django App 2

Wir werden nun Django in dieser dedizierten virtuellen Umgebung installieren. Pip wird einige zusätzliche Komponenten herunterladen und installieren:

Django ist installiert und einsatzbereit. Rufen Sie den Befehl django-admin auf, um ein neues Django-Projekt zu erstellen. Geben Sie der App danach einen passenden Namen:

Es wird ein Demo-Projekt mit den erforderlichen Projektdateien und -verzeichnissen erstellt:

Django App 3

Das Projektskelett ist bereit. Als Nächstes müssen wir es richtig konfigurieren, um unser Ziel zu erreichen.

  • Bearbeiten der Django-Projekteinstellungen

Alle Konfigurationen des Projekts sind in der Datei settings.py gespeichert. Sie befindet sich im Django-Projektverzeichnis. Wir beginnen damit, eine geeignete Zeitzone einzustellen und die Hosts aufzulisten, die eine Verbindung zur Django-App herstellen können. Öffnen Sie die Konfigurationsdatei in einem Texteditor:

Scrollen Sie im Skript nach unten und suchen Sie den Eintrag TIME_ZONE. Zur Demonstration ist die Zeitzone auf America/New_York:

TIME_ZONE

Als Referenz gibt der folgende Befehl alle unterstützten Zeitzonen in Linux aus:

Next, scroll to the entry ALLOWED_HOSTS. Er steuert, welche Maschine(n) auf die App zugreifen können. Zur Demonstration enthält er nur localhost:

Django App 4Speichern Sie dann die Datei und schließen Sie den Editor. Der nächste Befehl wendet die Änderungen an:

python manageJetzt müssen wir ein Admin-Konto für die Web-App erstellen. Dieses Konto wird für den Zugriff auf die Django-Admin-Oberfläche verwendet. Führen Sie den folgenden Befehl aus:

Django App 5Es wird nach Benutzername, E-Mail und Passwort gefragt. Die App ist nun bereit, eine Verbindung zur Datenbank herzustellen.

MySQL-Verbindung

  • Installieren von MySQL-Connectoren und Entwicklungsbibliotheken

Um MySQL in die Django-App zu integrieren, benötigen wir einige zusätzliche Python-3-Bibliotheken, die die erforderlichen Tools bereitstellen. Wir verwenden den Datenbank-Connector mysqlclient. Es ist ein Fork von MySQLdb.

Stellen Sie sicher, dass python3-dev installiert ist:

Wir benötigen außerdem einige zusätzliche Python- und MySQL-Header und -Bibliotheken:

Verwenden Sie nach Abschluss der Installation pip, um das Python-Modul mysqlclient zu installieren. Es können einige Fehlermeldungen generiert werden, die ignoriert werden können:

  • Konfigurieren einer dedizierten Datenbank

Der nächste Schritt ist das Konfigurieren einer dedizierten Datenbank und eines Datenbankbenutzers für unsere Django-App. Starten Sie die MySQL-Shell als root-Benutzer:

Um alle derzeit verfügbaren Datenbanken zu überprüfen, führen Sie die folgende Abfrage aus:

Erstellen wir eine dedizierte Datenbank für unsere Django-App. Geben Sie ihr einen passenden Namen, der mit dem Projektnamen übereinstimmt:

Überprüfen Sie anschließend die Erstellung:

Django App 6Erstellen Sie nun einen dedizierten MySQL-Benutzer. Wir werden diesen Benutzer als Eigentümer der Datenbank konfigurieren. Die Django-App verwendet die Anmeldedaten dieses Benutzers, um mit der MySQL-Datenbank zu arbeiten:

Geben Sie dem Benutzer demoapp_user die vollen Berechtigungen für die Datenbank demoapp_data:

Damit die Berechtigungsänderungen wirksam werden, laden Sie die MySQL-Berechtigungstabellen neu:

Django App 7Die Datenbank ist nun bereit, mit der Django-App verbunden zu werden.

  • Verbinden der Datenbank mit der Django-App

Schließlich konfigurieren wir die Django-App so, dass sie die Datenbank zur Datenspeicherung verwendet. Öffnen Sie das Konfigurationsskript settings.py:

Scrollen Sie nach unten zum Eintrag DATABASES und geben Sie den folgenden Code ein:

Django App 8Speichern Sie die Datei und schließen Sie den Editor. Der nächste Schritt besteht darin, die zuvor im Code beschriebene Konfigurationsdatei einzurichten. Verwenden Sie sudo, um die Textdatei am beschriebenen Speicherort zu öffnen:

Diese Konfigurationsdatei enthält Informationen über die für Django reservierte Datenbank und den Benutzer, den wir im MySQL-Server erstellt haben. Fügen Sie die folgenden Zeilen am Ende der Datei hinzu:

default-character-setDamit die Änderungen wirksam werden, müssen wir den MySQL-Server neu starten:

  • MySQL-Verbindung testen

Es ist nun an der Zeit zu überprüfen, ob die MySQL-Verbindung ordnungsgemäß funktioniert. Wenn der Django-Server ohne Probleme läuft, funktioniert die Verbindung einwandfrei. Andernfalls stimmt etwas nicht. Wenden Sie zunächst alle am Django-Projekt vorgenommenen Änderungen an:

python manageWechseln Sie nun in das folgende Projektverzeichnis und starten Sie den Django-Server:

python manage.py runserverVersuchen Sie als Nächstes, über einen Webbrowser auf den Server zuzugreifen:

server_ip_address

Voila! Wir sind erfolgreich auf der Django-Erfolgsseite gelandet. Dies bestätigt auch, dass die MySQL-Verbindung ordnungsgemäß funktioniert. Nach Abschluss der Aufgabe können Sie die virtuelle Umgebung sicher verlassen:

Fazit

In dieser Anleitung haben Sie die Grundlagen der Kombination von Django und MySQL kennengelernt. Wir haben eine Django-App erstellt und gezeigt, wie man sie mit einer MySQL-Datenbank verbindet. Das Geheimnis liegt in der Django-Konfigurationsdatei settings.py. Wir haben auch einige grundlegende Einstellungen wie ALLOWED_HOSTS und TIME_ZONE geändert. Django ist unglaublich flexibel. Neben MySQL unterstützt es auch andere SQL-Server wie PostgreSQL, Server-Engines wie Nginx usw.

Sie können sich auch unsere Anleitungen zu den Best Practices für die Installation, Konfiguration und Arbeit mit Django ansehen:

Viel Spaß beim Programmieren!

author

Hark Labs

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.