Django Start: 1_Environment Construction Django Start: 2_Create Project Django-Start: 3_Apache-Integration Django-Start: 4_MySQL-Integration
Letztes Mal war ich bereit, ein Projekt zu veröffentlichen, das mit Django in Zusammenarbeit mit Apache erstellt wurde. Wir werden die Umgebung weiter aufbauen, ohne das eigentliche Programm zu schreiben. Ändern Sie diesmal die DB-Einstellungen.
Django verwendet standardmäßig SQLite. Es hat zwar den Vorteil, dass ein Projekt sehr einfach gestartet werden kann (keine Einstellungen erforderlich). Wenn Sie später auf MySQL migrieren, wird dies mehr Zeit und Mühe kosten. Lassen Sie uns zuerst die schmerzhaften Dinge tun.
Wovon ich bei der Migration der Django-Datenbank von sqlite3 nach MySQL süchtig war
Vor allem, weil ich vorhabe, Textanalysen durchzuführen, habe ich irgendwo gelesen, dass SQLite nicht für die Verarbeitung großer Datenmengen geeignet ist, und habe mich daher entschlossen, die Einstellung zu ändern. Außerdem war ich an MySQL gewöhnt.
Ich konnte keinen guten Artikel über den Unterschied zwischen SQLite und MySQL finden, daher würde ich mich freuen, wenn Sie einen guten Artikel oder ein gutes Buch vorstellen könnten. Es ist leicht, aber hier ist der Unterschied. Liste der Datenbankverwaltungssysteme, die mit Mietservern verwendet werden können
yum install mariadb mariadb-server mariadb-devel
Öffnen Sie die MySQL-Konfigurationsdatei. Geben Sie beim Umgang mit Japanisch den Zeichencode an.
vi /etc/my.cnf
Fügen Sie unter [mysqld] Folgendes hinzu
character-set-server = utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Darüber hinaus das folgende vollständige Nachskript
[client]
default-character-set = utf8
Lassen Sie uns neu starten, damit die Einstellungen wirksam werden.
systemctl start mariadb
systemctl enable mariadb
Mir werden verschiedene Fragen gestellt, also werde ich antworten.
mysql_secure_installation
Enter current password for root (enter for none): #Die Standardeinstellung ist leer. Drücken Sie einfach die Eingabetaste
Set root password? [Y/n] y
New password: #Beliebiges Passwort
Re-enter new password:: #Passwort Bestätigung
Alle nachfolgenden Fragen sind mit "y" in Ordnung.
Führen Sie MySQL mit einem Passwort aus.
$ mysql -u root -p
Enter password: #Geben Sie das zuvor festgelegte Passwort ein
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 789
Server version: 5.5.47-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Jetzt erstellen wir eine Datenbank für Django.
MariaDB [(none)]> create database xxx;
MariaDB [(none)]> exit;
Damit sind die Einstellungen auf der DB-Seite abgeschlossen. Lassen Sie Django danach diese Datenbank erkennen.
Öffnen Sie die Einstellungsdatei.
vi settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'xxx', #DB-Name früher erstellt
'USER': 'root', #MySQL-Benutzername (root ist aus Sicherheitsgründen NG, ändern Sie entsprechend)
'PASSWORD': 'pass', #MySQL-Passwort
'HOST': '', #Host-IP
'PORT': '', #Hafen
}
}
...
TIME_ZONE = 'Asia/Tokyo'
HOST und PORT können leer sein, wenn Sie den Standardport in der Datenbank des lokalen Hosts verwenden.
pip install PyMySQL
Weist an, das zu manage.py hinzugefügte Modul zu verwenden.
vi manage.py
import pymysql
pymysql.install_as_MySQLdb()
Lassen Sie uns eine Migration erstellen und ausführen.
python manage.py makemigrations
python manage.py migrate
Mit Python3 + Django eine Verbindung zu MySQL herstellen
Recommended Posts