So verwenden Sie MariaDB mit Ihrer Django-Anwendung unter CentOS 7

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 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 CentOS 7-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 CentOS- und EPEL-Repositorys

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.

Ein Teil der Software, die wir benötigen, befindet sich im EPEL-Repository, das zusätzliche Pakete enthält. Wir können dieses Repository einfach aktivieren, indem wir Folgendes binden:

sudo yum install epel-release

Wenn EPEL aktiviert ist, können wir die erforderlichen Komponenten installieren, indem wir Folgendes eingeben:

sudo yum install python-pip python-devel gcc mariadb-server mariadb-devel

Nach der Installation können Sie den MariaDB-Dienst starten und aktivieren, indem Sie Folgendes eingeben:

sudo systemctl start mariadb
sudo systemctl enable mariadb

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

sudo mysql_secure_installation

Sie werden nach einem Administratorkennwort gefragt, das standardmäßig leer ist. Drücken Sie einfach die Eingabetaste, um fortzufahren. Anschließend werden Sie aufgefordert, das Root-Passwort zu ändern, was Sie tun sollten. Anschließend werden Ihnen eine Reihe von Fragen gestellt, die Sie mit der EINGABETASTE bestätigen müssen, um die Standardoptionen zu akzeptieren.

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

Wir können beginnen, indem wir uns mit unserer Datenbanksoftware in eine interaktive Sitzung einloggen, indem wir Folgendes eingeben:

mysql -u root -p

Sie werden aufgefordert, das Administratorkennwort einzugeben, das Sie im letzten Schritt 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 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 MariaDB als Backend-Datenbank für ein Django-Projekt installiert und konfiguriert wird. 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.