So verwenden Sie MySQL oder MariaDB mit Ihrer Django-Anwendung unter Ubuntu 14.04

Einführung

Django ist ein flexibles Framework zum schnellen Erstellen von Python-Anwendungen. Standardmäßig sind Django-Anwendungen so konfiguriert, dass Daten in einer kompakten SQLite-Datenbankdatei gespeichert werden. Während dies unter bestimmten Belastungen gut funktioniert, kann ein herkömmlicheres DBMS die Leistung in der Produktion verbessern.

In diesem Handbuch wird gezeigt, wie Sie MySQL oder MariaDB für Ihre Django-Anwendungen installieren und konfigurieren. Wir werden die erforderliche Software installieren, Datenbankanmeldeinformationen für unsere Anwendung erstellen und dann ein neues Django-Projekt starten und konfigurieren, um dieses Backend zu verwenden.

Voraussetzungen

Zu Beginn benötigen Sie eine saubere Ubuntu 14.04-Serverinstanz mit einem Benutzer ohne Rootberechtigung. Der Benutzer ohne Rootberechtigung muss mit "+ sudo +" - Berechtigungen konfiguriert sein. Weitere Informationen zum Einrichten finden Sie in unserem initial server setup guide.

Wenn Sie bereit sind fortzufahren, lesen Sie weiter.

Installieren Sie die Komponenten aus den Ubuntu-Repositories

Unser erster Schritt wird die Installation aller Teile sein, die wir aus den Repositories benötigen. Wir werden + pip +, den Python-Paketmanager, installieren, um unsere Python-Komponenten zu installieren und zu verwalten. Wir werden auch die Datenbanksoftware und die zugehörigen Bibliotheken installieren, die für die Interaktion mit ihnen erforderlich sind.

Im Folgenden werden sowohl MySQL als auch MariaDB behandelt. Wählen Sie daher den Abschnitt aus, der dem DBMS zugeordnet ist, das Sie verwenden möchten.

MySQL

Wenn Sie MySQL verwenden möchten, erhalten Sie mit den folgenden "+ apt +" - Befehlen die Pakete, die Sie benötigen:

sudo apt-get update
sudo apt-get install python-pip python-dev mysql-server libmysqlclient-dev

Sie werden aufgefordert, ein Kennwort für das administrative MySQL-Konto auszuwählen und zu bestätigen.

Nach der Installation können Sie die Datenbankverzeichnisstruktur erstellen, indem Sie Folgendes eingeben:

sudo mysql_install_db

Sie können dann ein einfaches Sicherheitsskript ausführen, indem Sie Folgendes ausführen:

sudo mysql_secure_installation

Sie werden nach dem Administratorkennwort gefragt, das Sie während der Installation für MySQL festgelegt haben. Anschließend werden Ihnen eine Reihe von Fragen gestellt. Wählen Sie neben der ersten Frage, bei der Sie aufgefordert werden, ein anderes Administratorkennwort zu wählen, für jede Frage Ja aus.

Mit der Installation und der anfänglichen Datenbankkonfiguration können wir fortfahren, um unsere Datenbank und unseren Datenbankbenutzer zu erstellen. Fahren Sie mit dem nächsten Abschnitt fort.

MariaDB

Wenn Sie MariaDB bevorzugen, können Sie die folgenden Anweisungen befolgen, um es zu installieren und die erforderliche Erstkonfiguration durchzuführen. Installieren Sie die Pakete aus den Repositorys, indem Sie Folgendes eingeben:

sudo apt-get update
sudo apt-get install python-pip python-dev mariadb-server libmariadbclient-dev libssl-dev

Sie werden aufgefordert, ein Kennwort für das administrative MariaDB-Konto auszuwählen und zu bestätigen.

Sie können dann ein einfaches Sicherheitsskript ausführen, indem Sie Folgendes ausführen:

sudo mysql_secure_installation

Sie werden nach dem Administratorkennwort gefragt, das Sie bei der Installation für MariaDB festgelegt haben. Anschließend werden Ihnen eine Reihe von Fragen gestellt. Wählen Sie neben der ersten Frage, in der Sie aufgefordert werden, ein anderes Administratorkennwort zu wählen, für jede Frage Ja aus.

Mit der Installation und der anfänglichen Datenbankkonfiguration können wir fortfahren, um unsere Datenbank und unseren Datenbankbenutzer zu erstellen.

Erstellen Sie eine Datenbank und einen Datenbankbenutzer

Der Rest dieses Handbuchs kann wie besehen befolgt werden, unabhängig davon, ob Sie MySQL oder MariaDB installiert haben.

Wir können beginnen, indem wir uns mit unserer Datenbanksoftware in eine interaktive Sitzung einloggen, indem wir Folgendes eingeben (der Befehl ist der gleiche, unabhängig davon, welche Datenbanksoftware Sie verwenden):

mysql -u root -p

Sie werden aufgefordert, das Administratorkennwort einzugeben, das Sie während der Installation ausgewählt haben. Anschließend erhalten Sie eine Eingabeaufforderung.

Zunächst erstellen wir eine Datenbank für unser Django-Projekt. Jedes Projekt sollte aus Sicherheitsgründen eine eigene isolierte Datenbank haben. Wir werden unsere Datenbank in diesem Handbuch "++" nennen, aber es ist immer besser, etwas aussagekräftigeres auszuwählen. Wir setzen den Standardtyp für die Datenbank auf UTF-8, was Django erwartet:

CREATE DATABASE  CHARACTER SET UTF8;

Denken Sie daran, alle Befehle an einer SQL-Eingabeaufforderung mit einem Semikolon zu beenden.

Als Nächstes erstellen wir einen Datenbankbenutzer, mit dem wir eine Verbindung zur Datenbank herstellen und mit dieser interagieren. Stellen Sie das Passwort auf etwas Starkes und Sicheres ein:

CREATE USER @localhost IDENTIFIED BY '';

Jetzt müssen wir unseren Datenbankbenutzern nur noch Zugriffsrechte auf die von uns erstellte Datenbank gewähren:

GRANT ALL PRIVILEGES ON .* TO @localhost;

Löschen Sie die Änderungen, damit sie während der aktuellen Sitzung verfügbar sind:

FLUSH PRIVILEGES;

Verlassen Sie die SQL-Eingabeaufforderung, um zu Ihrer regulären Shell-Sitzung zurückzukehren:

exit

Installieren Sie Django in einer virtuellen Umgebung

Nachdem unsere Datenbank eingerichtet ist, können wir Django installieren. Zur Verbesserung der Flexibilität werden wir Django und alle seine Abhängigkeiten in einer virtuellen Python-Umgebung installieren.

Sie erhalten das Paket "+ virtualenv +", mit dem Sie diese Umgebungen erstellen können, indem Sie Folgendes eingeben:

sudo pip install virtualenv

Erstellen Sie ein Verzeichnis für Ihr Django-Projekt. Gehen Sie anschließend in das Verzeichnis:

mkdir ~/
cd ~/

Wir können eine virtuelle Umgebung zum Speichern der Python-Anforderungen Ihres Django-Projekts erstellen, indem wir Folgendes eingeben:

virtualenv

Dies installiert eine lokale Kopie von Python und "+ pip " in ein Verzeichnis mit dem Namen "+" in Ihrem Projektverzeichnis.

Bevor wir Anwendungen in der virtuellen Umgebung installieren, müssen wir sie aktivieren. Sie können dies tun, indem Sie Folgendes eingeben:

source /bin/activate

Ihre Eingabeaufforderung ändert sich und zeigt an, dass Sie jetzt in der virtuellen Umgebung arbeiten. Es wird ungefähr so ​​aussehen: + () @: ~ / $ +.

Sobald Ihre virtuelle Umgebung aktiv ist, können Sie Django mit + pip + installieren. Wir installieren auch das Paket "+ mysqlclient +", mit dem wir die von uns konfigurierte Datenbank verwenden können:

pip install django mysqlclient

Wir können jetzt ein Django-Projekt in unserem + myproject + Verzeichnis starten. Dadurch wird ein gleichnamiges untergeordnetes Verzeichnis erstellt, in dem sich der Code selbst befindet, und im aktuellen Verzeichnis wird ein Verwaltungsskript erstellt. Stellen Sie sicher, dass der Punkt am Ende des Befehls hinzugefügt wird, damit dies korrekt eingerichtet ist:

django-admin.py startproject  .

Konfigurieren Sie die Django-Datenbankeinstellungen

Nachdem wir ein Projekt haben, müssen wir es konfigurieren, um die von uns erstellte Datenbank zu verwenden.

Öffnen Sie die Einstellungsdatei für das Django-Hauptprojekt, die sich im untergeordneten Projektverzeichnis befindet:

nano ~///settings.py

Am Ende der Datei sehen Sie einen Abschnitt "+ DATABASES +", der so aussieht:

. . .

DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.sqlite3',
       'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
   }
}

. . .

Dies ist derzeit so konfiguriert, dass SQLite als Datenbank verwendet wird. Wir müssen dies ändern, damit stattdessen unsere MySQL / MariaDB-Datenbank verwendet wird.

Ändern Sie zuerst die Engine so, dass sie auf das "+ mysql" -Backend anstatt auf das "+ _sqlite3" -Backend zeigt. Verwenden Sie für "+ NAME " den Namen Ihrer Datenbank (in unserem Beispiel "+"). Wir müssen auch Anmeldeinformationen hinzufügen. Wir benötigen den Benutzernamen, das Passwort und den Host, um eine Verbindung herzustellen. Wir werden die Port-Option hinzufügen und leer lassen, damit die Standardeinstellung ausgewählt wird:

. . .

DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.',
       'NAME': '',
       'USER': '',
       'PASSWORD': '',
       'HOST': 'localhost',
       'PORT': '',
   }
}

. . .

Wenn Sie fertig sind, speichern und schließen Sie die Datei.

Migrieren Sie die Datenbank und testen Sie Ihr Projekt

Nachdem die Django-Einstellungen konfiguriert wurden, können wir unsere Datenstrukturen in unsere Datenbank migrieren und den Server testen.

Wir können damit beginnen, Migrationen zu erstellen und auf unsere Datenbank anzuwenden. Da wir noch keine tatsächlichen Daten haben, wird hiermit einfach die anfängliche Datenbankstruktur eingerichtet:

cd ~/
python manage.py makemigrations
python manage.py migrate

Nach dem Erstellen der Datenbankstruktur können wir ein Administratorkonto erstellen, indem wir Folgendes eingeben:

python manage.py createsuperuser

Sie werden aufgefordert, einen Benutzernamen auszuwählen, eine E-Mail-Adresse anzugeben und ein Kennwort für das Konto auszuwählen und zu bestätigen.

Sobald Sie ein Administratorkonto eingerichtet haben, können Sie testen, ob Ihre Datenbank ordnungsgemäß funktioniert, indem Sie den Django-Entwicklungsserver starten:

python manage.py runserver 0.0.0.0:8000

Besuchen Sie in Ihrem Webbrowser den Domainnamen oder die IP-Adresse Ihres Servers, gefolgt von "+: 8000 +", um die Standard-Django-Root-Seite zu erreichen:

http://:8000

Sie sollten die Standardindexseite sehen:

Fügen Sie "+ / admin +" an das Ende der URL an und Sie sollten in der Lage sein, auf den Anmeldebildschirm der Admin-Oberfläche zuzugreifen:

Geben Sie den Benutzernamen und das Passwort ein, die Sie gerade mit dem Befehl + createduperuser + erstellt haben. Sie werden dann zur Administrationsoberfläche weitergeleitet:

Wenn Sie mit den Nachforschungen fertig sind, können Sie den Entwicklungsserver stoppen, indem Sie in Ihrem Terminalfenster STRG-C drücken.

Durch den Zugriff auf die Administrationsoberfläche haben wir bestätigt, dass in unserer Datenbank unsere Benutzerkontoinformationen gespeichert sind und dass auf diese entsprechend zugegriffen werden kann.

Fazit

In diesem Handbuch wird gezeigt, wie Sie MySQL oder MariaDB als Backend-Datenbank für ein Django-Projekt installieren und konfigurieren. Während SQLite die Last während der Entwicklung und der Light Production-Nutzung problemlos bewältigen kann, profitieren die meisten Projekte von der Implementierung eines umfassenderen DBMS.