[PYTHON] Erstellen Sie eine Django-Umgebung auf Raspai (MySQL)

Baue eine Django-Umgebung auf Raspai. Weil ich wollte. Die verwendete Raspeltorte war Raspberry pi 3B +.

Als ich die Konstruktionsinformationen der Django-Umgebung überprüfte, war alles alt, und es fiel mir schwer, sie mit Mariadb einzustellen, da MySQL nicht in Raspeye enthalten ist. Es handelt sich also um ein Memo.

Versionsbestätigung

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 9.11 (stretch)
Release: 9
Codename: stretch
$ uname -a
Linux raspberry 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv71 GNU/Linux

aktualisieren

$ sudo apt update
$ sudo apt upgrade -y
$ sudo reboot

Python Es sollte von Anfang an installiert worden sein, damit Sie es überspringen können. Wenn die Version niedrig ist, möchten Sie möglicherweise auf 3.7.x aktualisieren.

$ sudo apt install python3 python3-dev
$ python3 -V
Python 3.7.3

Django

Installieren Sie das Hauptgerät

$ sudo apt install python3-django
$ pip3 install Django==3.0.6
$ django-admin --version
3.0.6

Sie können überprüfen, ob es sich um die neueste Version mit $ pip3 list --outdated handelt.

MySQL(mariadb) Da MySQL selbst nicht installiert werden kann, installieren Sie mariadb.

Installieren Sie das Hauptgerät

$ sudo apt install mariadb-server
$ mysql --version
mysql  Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (i686) using readline 5.2

Client installieren

$ sudo apt install libmariadb-dev
$ pip3 install --no-binary :all: mysqlclient
~ 
Successfully installed mysqlclient-1.4.6

Grundeinstellung

Legen Sie das Root-Benutzerpasswort fest. Setzen Sie "********" auf ein beliebiges Passwort.

$ sudo -i
# mysql -u root
mysql> use mysql;
mysql> update user set plugin='' where user='root';
mysql> update user set password=password('********') where user='root';
mysql> flush privileges;

Die Update-Anweisung kann zusammengestellt werden.

Sie können die Einstellungsinformationen mit "Benutzer auswählen, Passwort, Plugin vom Benutzer auswählen" überprüfen. vlcsnap-2020-05-27-16h16m34s284.png

DB erstellen

mysql> create database mydb;

Erstellen und starten Sie ein Projekt

Erstellen Sie ein Django-Projekt

$ django-admin startproject mysite

Einstellungen ändern

Ändern Sie die folgenden zwei Punkte in settings.py.

$ sudo nano mysite/mysite/settings.py

Geben Sie '*' in [] von ALLOWED_HOSTS = [] ein.

settings.py


# ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['*']

Zunächst wird sqlite3 angegeben. Kommentieren Sie die MySQL-Einstellungen aus (oder löschen Sie sie) und beschreiben Sie sie. Geben Sie den erstellten DB-Namen in NAME an. Setzen Sie "********" auf das eingestellte Passwort.

settings.py


DATABASES = {
#    'default': {
#        'ENGINE': 'django.db.backends.sqlite3',
#        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#    }
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydb',
        'USER': 'root',
        'PASSWORD': '********',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

Überprüfen Sie, ob die Einstellungen korrekt sind

$ python3 mysite/manage.py migrate

vlcsnap-2020-05-27-16h15m56s570.png

Starten Sie, wenn es kein Problem gibt

$ python3 mysite/manage.py runserver

Lassen Sie es uns mit einem Browser überprüfen, wenn es startet. Sie können eine Verbindung mit dem lokalen Port 8000 herstellen. http://127.0.0.1:8000

Nachdem Sie eine Grundlage haben, können Sie eine App erstellen, während Sie sich die Referenzsite ansehen.

image.png

Danke für deine harte Arbeit.

Fehlerbehebung

Mysqlclient kann nicht installiert werden

Wenn Sie aufgrund der folgenden Wörter wie "Fehlercode 1" keine Installation durchführen können.

OSError: mysql_config not found

Installieren Sie Folgendes:

$ sudo apt install python3-dev libmariadb-dev

Geben Sie MySQL nicht als Root ein.

Wenn Sie das Kennwort des Root-Benutzers vergessen haben, setzen Sie das Kennwort zurück.

$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Passwort zurücksetzen

Starten Sie MySQL im abgesicherten Modus

$ sudo -i
# service mysqld stop
# mysqld_safe --skip-grant-tables &

Legen Sie das Root-Benutzerpasswort fest

# mysql -u root
mysql> use mysql;
mysql> update user set plugin='' where user='root';
mysql> update user set password=password('********') where user = 'root';
mysql> flush privileges;

Beenden Sie MySQL im abgesicherten Modus

# kill -KILL [mysqld_sichere PID]
# kill -KILL [mysqld PID]

* So überprüfen Sie die PID von mysqld

$ ps aux | grep mysqld

Starten Sie MySQL

# service mysqld start

Berechtigungen zurücksetzen

mysql> use mysql;
mysql> select * from user;
mysql> truncate table user;
mysql> flush privileges;
mysql> grant all privileges on *.* to root@localhost identified by '********' with grant option;
mysql> flush privileges;

Wenn Sie nicht im abgesicherten Modus booten

# mysqld_safe --skip-grant-tables &
$ 2018-08-05T15:34:57.6NZ mysqld_safe A mysqld process already exists

Wenn Sie wütend werden, wenn Ihnen mitgeteilt wird, dass es bereits ausgeführt wird, stoppen Sie den bereits ausgeführten Prozess. Überprüfen Sie die PID oben und töten Sie.

Wenn Sie ohne einen MySQL-Client wütend werden

Derjenige, der dazu neigt aufzustehen, wenn er alte Informationen betrachtet.

Error loading MySQLdb module: No module named 'MySQLdb'.
Did you install mysqlclient or MySQL-python?

Als Lösung in der vorherigen Version scheint das folgende Programm in "$ pip install mysqlclient" oder "settings.py" zu schreiben. Wenn Sie den Fehler so wie er ist überprüfen, werden nur diese Informationen ausgegeben, aber diese Lösung selbst Ist alt.

settings.py


#Diese Lösung ist alt und sollte entfernt werden
import pymysql
pymysql.install_as_MySQLdb()

Ab django 2.0 ist pymysql veraltet. Wenn Sie also eines haben, deinstallieren Sie es bitte. Derzeit wird "mysqlclient" verwendet. Installieren Sie es daher mit den folgenden Inhalten.

$ pip3 install --force-reinstall --ignore-installed --no-binary :all: mysqlclient

Die normale Installation ($ pip3 install mysqlclient) scheint nicht auf django zu verweisen, und der gleiche Fehler tritt auf.

Referenz

Recommended Posts

Erstellen Sie eine Django-Umgebung auf Raspai (MySQL)
Erstellen Sie eine Python-Entwicklungsumgebung auf Raspberry Pi
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
Erstellen Sie eine OpenCV-Python-Umgebung auf Raspberry Pi B +
Erstellen Sie eine Arch Linux-Umgebung auf Raspai
Erstellen Sie mithilfe von Poetry eine OpenCV4-Umgebung auf Raspberry Pi
Erstellen einer Django-Entwicklungsumgebung mit pyenv-virtualenv auf einem Mac
So erstellen Sie eine Django (Python) -Umgebung auf Docker
Erstellen Sie eine virtuelle Python-Umgebung mit venv (Django + MySQL ①)
Erstellen Sie eine Python3-Umgebung unter CentOS7
Erstellen Sie wxPython unter Ubuntu 20.04 auf Himbeer-Pi 4
Erstellen Sie eine Python-Umgebung unter MacOS (Catallina)
Erstellen Sie eine Python + OpenCV-Umgebung in Cloud9
# 3 Erstellen Sie eine Python-Umgebung (Django) mit einer EC2-Instanz (ubuntu18.04) von AWS part2
Erstellen Sie eine LAMP-Umgebung auf Ihrem lokalen Docker
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Erstellen Sie einfach eine Python 3-Ausführungsumgebung unter Windows
Erstellen Sie mit Docker auf RaspberryPi3 eine Python + Flasche + MySQL-Umgebung! [Einfache Konstruktion]
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Versuchen Sie, QR-Code mit Raspberry Pi zu verwenden
Pigpio auf Himbeer-Pi
Erstellen Sie eine Python-Umgebung auf einem Mac (Mountain Lion)
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Stellen Sie Django-Apps unter Ubuntu + Nginx + MySQL bereit (Build)
Erstellen Sie mit Vagrant in 5 Minuten eine Django-Umgebung
Erstellen Sie eine Python-Entwicklungsumgebung auf Ihrem Mac
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Erstellen Sie eine Kubernetes-Umgebung für die Entwicklung unter Ubuntu
Erstellen Sie mit IntelliJ schnell eine Python Django-Umgebung
Cython auf Raspberry Pi
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Ich habe ein WebAPI gemacht! Erstellen einer Umgebung aus Django Rest Framework 1 mit EC2
Erstellen Sie mit Docker auf RaspberryPi3 eine Python + Flasche + MySQL-Umgebung! [Versuch und Irrtum]
Erstellen einer verteilten Umgebung mit der Raspberry PI-Serie (Teil 3: Installieren und Konfigurieren von dnsmasq)
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (3) GVim8.0 und Python3.6
# 2 Erstellen Sie eine Python-Umgebung mit einer EC2-Instanz von AWS (ubuntu18.04).
Erstellen Sie eine lokale Entwicklungsumgebung für Laravel6.X auf Ihrem Mac
Erstellen Sie eine Python-Umgebung für maschinelles Lernen unter Mac OS
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (1)
Erstellen Sie eine Python-Entwicklungsumgebung unter Mac OS X.
Erstellen Sie mit pyenv eine Python-Umgebung auf Ihrem Mac
Erstellen Sie eine Python-Entwicklungsumgebung mit pyenv unter MacOS
Erstellen Sie eine Entwicklungsumgebung mit Poetry Django Docker Pycharm
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
Erstellen einer Django-Umgebung für Win10 (mit virtuellem Speicherplatz)
Windows10 (x64) Erstellen Sie nativ eine maschinelle Lernumgebung
Erstellen Sie eine LAMP-Umgebung [CentOS 7]
Erstellen Sie eine Python-Umgebung unter Windows
Entwicklung der Django-Umgebung unter Windows 10
Erstellen Sie eine Python-Umgebung mit Windows
Erstellen Sie eine maschinelle Lernumgebung
Erstellen Sie die Python-Umgebung offline
Pyenv auf Raspberry Pi eingeführt
Verwenden Sie NeoPixel mit Himbeerkuchen
Installieren Sie OpenCV4 auf Raspberry Pi 3
Installieren Sie TensorFlow 1.15.0 auf Raspberry Pi
Erstellen Sie Server in Linux und lokalen Netzwerken mit Raspberry Pi NextCloud und Desktop-Sharing
Quellkompilieren Sie Apache2.4 + PHP7.4 mit Raspberry Pi und erstellen Sie einen Webserver --3. Verwenden Sie MySQL
Erstellen Sie mit macOS sierra eine Python-Lernumgebung für maschinelles Lernen