[PYTHON] Construire un environnement Django sur Raspai (MySQL)

Construisez un environnement django sur Raspai. Car je voulais. La tarte aux framboises utilisée était la Raspberry pi 3B +.

Quand j'ai vérifié les informations de construction de l'environnement Django, tout était vieux, et j'ai eu du mal à le configurer avec mariadb car MySQL n'est pas inclus dans Raspeye, donc c'est un mémo.

Confirmation de version

$ 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

mise à jour

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

Python Il aurait dû être installé depuis le début, vous pouvez donc l'ignorer. Si la version est faible, vous souhaiterez peut-être mettre à jour vers 3.7.x.

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

Django

Installez l'unité principale

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

Vous pouvez vérifier s'il s'agit de la dernière version avec $ pip3 list --outdated.

MySQL(mariadb) Puisque MySQL lui-même ne peut pas être installé, installez mariadb.

Installez l'unité principale

$ 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

Installer le client

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

Réglage initial

Définissez le mot de passe de l'utilisateur root. Définissez `` ******** '' sur n'importe quel mot de passe.

$ 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;

La déclaration de mise à jour peut être préparée.

Vous pouvez vérifier les informations de réglage avec sélectionner l'utilisateur, le mot de passe, le plugin de l'utilisateur;. vlcsnap-2020-05-27-16h16m34s284.png

Créer une base de données

mysql> create database mydb;

Créer et lancer un projet

Créer un projet Django

$ django-admin startproject mysite

Modifier les paramètres

Modifiez les deux points suivants dans settings.py.

$ sudo nano mysite/mysite/settings.py

ʻALLOWED_HOSTS = Entrez '*' dans [] de [] `.

settings.py


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

Initialement, sqlite3 est spécifié, alors commentez (ou supprimez) et décrivez les paramètres MySQL. Spécifiez le nom de la base de données créée dans NAME. Réglez `` ******** '' sur le mot de passe défini.

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',
    }
}

Vérifiez si les paramètres sont corrects

$ python3 mysite/manage.py migrate

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

Commencez s'il n'y a pas de problème

$ python3 mysite/manage.py runserver

Vérifions-le avec un navigateur au démarrage. Vous pouvez vous connecter avec le port local 8000. http://127.0.0.1:8000

Maintenant que vous avez une base, vous pouvez créer une application en consultant le site de référence.

image.png

Je vous remercie pour votre travail acharné.

dépannage

Impossible d'installer mysqlclient

Si vous ne pouvez pas installer en raison des mots suivants tels que ʻError Code 1`.

OSError: mysql_config not found

Installez ce qui suit:

$ sudo apt install python3-dev libmariadb-dev

N'entrez pas MySQL en tant qu'utilisateur root.

Si vous oubliez le mot de passe de l'utilisateur root, réinitialisez le mot de passe.

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

Réinitialiser un mot de passe

Démarrez MySQL en mode sans échec

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

Définir le mot de passe de l'utilisateur root

# 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;

Quitter MySQL démarré en mode sans échec

# kill -KILL [mysqld_PID sûr]
# kill -KILL [mysqld PID]

* Comment vérifier le PID de mysqld

$ ps aux | grep mysqld

Démarrez MySQL

# service mysqld start

Réinitialiser les autorisations

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;

Lorsque vous ne démarrez pas en mode sans échec

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

Si vous vous fâchez quand on vous dit qu'il est déjà en cours d'exécution, arrêtez le processus qui est déjà en cours d'exécution. Vérifiez le PID ci-dessus et Tuez.

Quand vous vous fâchez sans client MySQL

Celui qui a tendance à se lever en regardant de vieilles informations.

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

Comme solution dans la version précédente, il semble écrire le programme suivant dans $ pip install mysqlclient ou setting.py, et si vous vérifiez l'erreur telle quelle, seules ces informations sortiront, mais cette solution elle-même Est vieux.

settings.py


#Cette solution est ancienne et doit être supprimée
import pymysql
pymysql.install_as_MySQLdb()

Puisque pymysql est obsolète depuis django 2.0, veuillez le désinstaller si vous en avez un. Actuellement, mysqlclient est utilisé, donc installez-le avec le contenu suivant.

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

Le simple fait de l'installer normalement ($ pip3 install mysqlclient) ne semble pas faire référence à django, et la même erreur se produit.

référence

Recommended Posts

Construire un environnement Django sur Raspai (MySQL)
Construire un environnement de développement Python sur Raspberry Pi
Créer un environnement Tensorflow avec Raspberry Pi [2020]
Construire un environnement OpenCV-Python sur Raspberry Pi B +
Créer un environnement Arch Linux sur Raspai
Créer un environnement OpenCV4 sur Raspberry Pi à l'aide de Poetry
Créer un environnement de développement Django à l'aide de pyenv-virtualenv sur Mac
Comment créer un environnement Django (python) sur Docker
Construire un environnement virtuel Python en utilisant venv (Django + MySQL ①)
Créer un environnement python3 sur CentOS7
Construisez wxPython sur Ubuntu 20.04 sur Raspberry Pi 4
Construire un environnement python sur MacOS (Catallina)
Créer un environnement Python + OpenCV sur Cloud9
# 3 Créez un environnement Python (Django) avec une instance EC2 (ubuntu18.04) d'AWS part2
Créez un environnement LAMP sur votre Docker local
Créez un environnement WardPress sur AWS avec Pulumi
Créez simplement un environnement d'exécution Python 3 sous Windows
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Construction facile]
Créez un environnement python avec ansible sur centos6
Essayez d'utiliser le code QR avec Raspberry Pi
pigpio sur Raspberry pi
Créer un environnement Python sur Mac (Mountain Lion)
[Python] Créer un environnement de développement Django avec Docker
Déployer des applications Django sur Ubuntu + Nginx + MySQL (Build)
Créez un environnement Django avec Vagrant en 5 minutes
Créez un environnement de développement Python sur votre Mac
Créer un environnement de développement Django à l'aide de Doker Toolbox
Créer un environnement Kubernetes pour le développement sur Ubuntu
Créez rapidement un environnement Python Django avec IntelliJ
Cython sur Raspberry Pi
Connectez-vous à MySQL avec Python sur Raspberry Pi
J'ai fait une webAPI! Construire un environnement à partir de Django Rest Framework 1 avec EC2
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Essai et erreur]
Création d'un environnement distribué avec la série Raspberry PI (Partie 3: Installation et configuration de dnsmasq)
Créer un environnement de développement Python basé sur GVim sur Windows 10 (3) GVim8.0 et Python3.6
# 2 Créez un environnement Python avec une instance EC2 d'AWS (ubuntu18.04)
Créez un environnement de développement local pour Laravel6.X sur votre Mac
Créer un environnement Python d'apprentissage automatique sur Mac OS
Créer un environnement de développement Python basé sur GVim sur l'installation de Windows 10 (1)
Créer un environnement de développement Python sur Mac OS X
Créez un environnement Python sur votre Mac en utilisant pyenv
Créer un environnement de développement Python à l'aide de pyenv sur MacOS
Créez un environnement de développement avec Poetry Django Docker Pycharm
Comment créer un environnement Python sur Amazon Linux 2
Construire un environnement Django pour Win10 (avec espace virtuel)
Windows10 (x64) Créer nativement un environnement d'apprentissage automatique
Créer un environnement LAMP [CentOS 7]
Créer un environnement Python sur Windows
Développement de l'environnement Django sur Windows 10
Construire un environnement Python avec Windows
Créer un environnement d'apprentissage automatique
Créer un environnement Python hors ligne
Introduction de pyenv sur Raspberry Pi
Utilisez NeoPixel avec la tarte aux framboises
Installez OpenCV4 sur Raspberry Pi 3
Installez TensorFlow 1.15.0 sur Raspberry Pi
Créez des serveurs sur Linux et des réseaux locaux avec Raspberry Pi NextCloud et le partage de bureau
Compilez Apache2.4 + PHP7.4 avec Raspberry Pi et construisez un serveur Web --3. Utilisez MySQL
Créer un environnement d'étude d'apprentissage automatique Python avec macOS Sierra