Nuevo proyecto de Django y configure la base de datos MySQL en el servidor de la nube (CentOS 7.6 del sistema)

Recientemente Tencent nube permanecen 5 yuanes al mes para alquilar nombre de dominio del servidor de la nube + años, pensando proyecto de Django será desplegado en el servidor de la nube, el violín desde hace mucho tiempo, hemos sido capaces de lograr un entorno de nube sección de configuración.

directorio

instalación python3

yum configuración

Instalar la base de datos MySQL

Nuevo proyecto de Django

Django mysql configuración del proyecto

Compruebe inicio local en el proyecto de Django servidor de la nube


instalación python3

CentOS 7.6 viene con una versión de Python 2.7.5,

[root@VM_0_3_centos ~]# python -V
Python 2.7.5

Primero instale python3,

[root@VM_0_3_centos ~]# yum install python3

Ver la versión python3

[root@VM_0_3_centos ~]# python3 -V
Python 3.6.8

Establecer la conexión (similar al sistema de ventanas de acceso directo) para conectar el pitón a python3, primero compruebe la conexión suave existente en el pitón

[root@VM_0_3_centos ~]# ll /bin/python*
lrwxrwxrwx 1 root root     7 Nov  5 23:09 /bin/python -> python2
lrwxrwxrwx 1 root root     9 Nov  5 23:09 /bin/python2 -> python2.7
-rwxr-xr-x 1 root root  7216 Aug  7  2019 /bin/python2.7
lrwxrwxrwx 1 root root     9 Apr  7 10:07 /bin/python3 -> python3.6
-rwxr-xr-x 2 root root 11408 Aug  8  2019 /bin/python3.6
-rwxr-xr-x 2 root root 11408 Aug  8  2019 /bin/python3.6m

Eliminar la conexión pitón suave original y establecer la conexión con python3.6

[root@VM_0_3_centos ~]# rm /bin/python
rm: remove symbolic link ‘/bin/python’? y
[root@VM_0_3_centos ~]# ln -s /bin/python3.6 /bin/python

Compruebe de nuevo se pueden encontrar en pitón suave se ha conectado a python3.6

[root@VM_0_3_centos ~]# ll /bin/python
lrwxrwxrwx 1 root root 14 Apr  7 10:17 /bin/python -> /bin/python3.6

El mismo método se puede proporcionar al conector flexible PIP3 pip

[root@VM_0_3_centos ~]# ln -s /bin/pip3 /bin/pip
[root@VM_0_3_centos ~]# ll /bin/pip
lrwxrwxrwx 1 root root 9 Apr  7 10:33 /bin/pip -> /bin/pip3

yum configuración

Después de instalar y configurar python3 conexiones flexibles, se encontró con la primera fosa se encontró yum no se puede utilizar

[root@VM_0_3_centos ~]# yum
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

Yum utilizado originalmente por versión predeterminada de python2.7, después de cambiar la conexión pitón suave resultante yum utilizando la versión python3.6, y por lo tanto a la parte posterior cambio a través de vi editor, el método específico en los primeros Llanuras fila después de algún pitón añaden "2", a continuación, guardar y salir

#!/usr/bin/python2
import sys
try:
    import yum
except ImportError:
    print >> sys.stderr, """\
...
...
...

Mientras tanto Archivo "/ usr / libexec / urlgrabber-ext-down" también es necesario modificar el mismo

#! /usr/bin/python2
#  A very simple external downloader
#  Copyright 2011-2012 Zdenek Pavlas
...
...
...

Instalar la base de datos MySQL

yum para paquetes de software descargar e instalar desde el repositorio, vista de la biblioteca de software existente

[root@VM_0_3_centos ~]# ll /etc/yum.repos.d/
total 8
-rw-r--r-- 1 root root 614 Apr  7 13:27 CentOS-Base.repo
-rw-r--r-- 1 root root 230 Apr  7 13:27 CentOS-Epel.repo

En primer lugar, tenemos que añadir MySQL Yum Repositorio (se puede ver el tutorial del sitio web oficial )

[root@VM_0_3_centos ~]# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

Ver biblioteca de software nuevo, se encontró más de dos

[root@VM_0_3_centos ~]# ll /etc/yum.repos.d/
total 16
-rw-r--r-- 1 root root  614 Apr  7 13:45 CentOS-Base.repo
-rw-r--r-- 1 root root  230 Apr  7 13:45 CentOS-Epel.repo
-rw-r--r-- 1 root root 2076 Apr 25  2019 mysql-community.repo
-rw-r--r-- 1 root root 2108 Apr 25  2019 mysql-community-source.repo

Al mismo tiempo, a través rpm -qa ... Ver todos los paquetes relacionados con MySQL se ha instalado, los resultados muestran que sólo hay una

[root@VM_0_3_centos HelloWorld]# rpm -qa mysql*
mysql80-community-release-el7-3.noarch

Ahora se puede instalar a través de yum install mysql-comunidad-servidor, el comando no solo servidor MySQL instalada debe también instalar paquetes adicionales

[root@VM_0_3_centos ~]# yum install mysql-community-server

Después de la instalación, el uso rpm -qa MySQL * Ver, encontraron cinco paquetes cada nueva instalación

[root@VM_0_3_centos ~]# rpm -qa mysql*
mysql80-community-release-el7-3.noarch
mysql-community-libs-8.0.19-1.el7.x86_64
mysql-community-libs-compat-8.0.19-1.el7.x86_64
mysql-community-common-8.0.19-1.el7.x86_64
mysql-community-client-8.0.19-1.el7.x86_64
mysql-community-server-8.0.19-1.el7.x86_64

mysql abierto

[root@VM_0_3_centos HelloWorld]# systemctl start mysqld.service

Después de la contraseña inicial será generado en mysqld.log un usuario root

[root@VM_0_3_centos ~]# cat /var/log/mysqld.log | grep password
2020-04-07T07:00:22.584068Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: IbHxyweP/2cx

Aterrizaje MySQL, introduzca la contraseña correspondiente

[root@VM_0_3_centos ~]# mysql -uroot -p

Durante otras operaciones, lo que sugiere la necesidad de cambiar la contraseña

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

Siga las instrucciones para realizar cambios, Tianwan3 '!' Representan la contraseña modificada

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Tianwan3!';   
Query OK, 0 rows affected (0.01 sec)

Nuevo proyecto HelloWorld, Django base de datos reservada para copia de seguridad.

mysql> CTEATE DATABASE HelloWorld;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CTEATE DATABASE HelloWorld' at line 1
mysql> CREATE DATABASE HelloWorld;
Query OK, 1 row affected (0.02 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| HelloWorld         |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Nuevo proyecto de Django

En primer lugar pip instalar Django

[root@VM_0_3_centos ~]# pip install django

A continuación, entra en el directorio / home, el nuevo proyecto HelloWorld

[root@VM_0_3_centos ~]# cd /home/
[root@VM_0_3_centos home]# django-admin startproject HelloWorld

Introduzca la estructura vista de árbol del proyecto (sin árbol, primero puede instalar yum instalación árbol)

[root@VM_0_3_centos home]# tree
.
`-- HelloWorld
    |-- HelloWorld
    |   |-- asgi.py
    |   |-- __init__.py
    |   |-- settings.py
    |   |-- urls.py
    |   `-- wsgi.py
    `-- manage.py

2 directories, 6 files

cd para el proyecto HelloWorld, introduzca pitón inicio de ejecución del servidor manange.py

[root@VM_0_3_centos HelloWorld]# python manage.py runserver
...
...
...
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).

Los resultados muestran que el error debido a una versión más baja SQLite (SQLite es una base de datos ligera Django proyecto utilizado por defecto), CentOS 7.6 está incorporado SQLite 3.7.17

[root@VM_0_3_centos HelloWorld]# rpm -qa sqlite*
sqlite-3.7.17-8.el7.x86_64

Una solución puede ser comentada en el archivo correspondiente Código voluntad "/usr/local/lib64/python3.6/site-packages/django/db/backends/sqlite3/base.py"

...
...
...
#def check_sqlite_version():
#    if Database.sqlite_version_info < (3, 8, 3):
#        raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)


#check_sqlite_version()
...
...
...

Introduzca python manage.py runserver de nuevo, el lanzamiento con éxito!

[root@VM_0_3_centos HelloWorld]# python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

April 07, 2020 - 06:48:35
Django version 3.0.5, using settings 'HelloWorld.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Django mysql configuración del proyecto

En primer lugar es necesario instalar bibliotecas de terceros pymysql

[root@VM_0_3_centos HelloWorld]# pip install pymysql

Importación pymysql HelloWorld en un subdirectorio del proyecto en __init__.py

import pymysql
pymysql.install_as_MySQLdb()

Modificar la base de datos en un subdirectorio HelloWorld en settings.py, los ajustes iniciales son los siguientes:

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

Modificado como sigue:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'HelloWorld',
        'USER': 'root',
        'PASSWORD': 'Tianwan3!',
        'PORT': '3306',
        'HOST': '',
    }
}

Comienza el proyecto, el error, los errores pueden ser encontrados en cuestión es similar a la versión anterior del problema sqlite

[root@VM_0_3_centos HelloWorld]# python manage.py  runserver
...
...
...
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

/usr/local/lib64/python3.6/site-packages/django/db/backends/mysql/base.py archivo abierto, comente dos líneas por debajo

#if version < (1, 3, 13):
#    raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

Comenzó de nuevo, el éxito!

[root@VM_0_3_centos HelloWorld]# python manage.py  runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, ses
sions.
Run 'python manage.py migrate' to apply them.

April 07, 2020 - 07:33:01
Django version 3.0.5, using settings 'HelloWorld.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Compruebe inicio local en el proyecto de Django servidor de la nube

Iniciar el proyecto en el servidor de la nube

[root@VM_0_3_centos HelloWorld]# python manage.py  runserver 0.0.0.0:8000

de entrada del navegador de Internet (servidor de la nube pública IP + número de puerto) 62.234.83.169:8000, está dando los resultados .234.83.169 impulsó a '62 'a allowed_hosts

servidor de la nube utilizando los vi l Abiertas subdirectorios HelloWorld del proyecto en el settings.py, se añade la ip

ALLOWED_HOSTS = ['62.234.83.169']

proyecto de servidor de la nube se pone en marcha de nuevo, la actualización del navegador de Internet, el éxito!

 

Hemos publicado 29 artículos originales · ganado elogios 26 · vistas 20000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_42216109/article/details/105358154
Recomendado
Clasificación