Python3 Django配置MySQL数据库

                                                         Python3 Django配置MySQL数据库

一、准备工作

1.安装PyCharm

2.安装Python3.7.3

3.安装MySQL8.0.18

 

二、Django连接MySQL

1.创建一个Django项目

(1)安装django   (使用豆瓣镜像源进行安装)

 pip install django  --index=https://pypi.doubanio.com/simple/ --trusted-host pypi.douban.com

(2)Django安装成功后,使用startproject命令创建一个Django项目 (以下命令创建了一个名为SVR的Django项目)

django-admin startproject SVR

(3)进入SVR项目的根目录,使用startapp命令创建一个app项目

python manage.py  startapp SVR_APP

创建好后,目录结构如下:

Python3 Django配置MySQL数据库_第1张图片

2.配置MySQL

(1)安装MySQL驱动

django 连接mysql默认驱动是mysqldb,mysqldb没有支持python3的版本,使用python3.x版本时,这里采用pymysql替换mysqldb

安装pymysql:

pip install pymysql

(2)在django中配置mysql:在setting.py文件中配置mysql参数信息

将默认的数据库配置修改为对应的Mysql数据库信息

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'svr', # 数据库名
        'USER': 'svropr', # 用户名
        'PASSWORD': '*********', # 密码
        'HOST': '127.0.0.1', # 数据库服务器IP
        'PORT': '3306' # 端口
    }
}

(3)在svr项目下的__init__.py文件中添加如下代码:

  表示使用pymsql作为mysql驱动

import pymysql
pymysql.install_as_MySQLdb()

3.Django使用Model类创建Mysql数据表

(1)在svr_app项目下的models.py文件中创建Model类,如下:

from django.db import models

# Create your models here.对应数据库中的表结构

class SysInfo(models.Model):
    sys_id = models.CharField(max_length=8, primary_key=True)
    sys_name = models.CharField(max_length=60)
    depart_no = models.CharField(max_length=8)
    developer = models.CharField(max_length=60)
    tester = models.CharField(max_length=60)
    operator = models.CharField(max_length=60)

(2)根据Model类创建数据库表

  在Django根目录下,执行以下命令进行数据表的创建

python manage.py makemigrations SVR_APP # 数据迁移准备

python manage.py migrate # 数据迁移

步骤一、在执行python manage.py makemigrations 命令

Q:出现以下问题:指明mysqlclient版本不满足需求

Python3 Django配置MySQL数据库_第2张图片

A:

(1)通过安装符合版本的mysqlclient解决

执行以下命令:

 pip install mysqlclient

如果在安装mysqlclient过程中,报 OSError: mysql_config not found 错误

解决方案如下:执行以下命令:(将mysql的安装路径加入环境变量) 令

exportPATH=$PATH:/usr/local/mysql/bin

再次 执行 pip install mysqlclient 安装mysqlclient

 

(2)如果安装了符合版本的mysqlclient后,执行python manage.py makemigrations 命令,仍然报版本不满足需求,则可以采用下面解决方案

修改"/anaconda3/envs/MyPython3/lib/python3.7/site-packages/django/db/backends/mysql/base.py"路径下的base.py文件

将下面两句注释掉:

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

再次执行命令 :python manage.py makemigrations,报如下错误:AttributeError: 'str' object has no attribute 'decode'

此时,将"/anaconda3/envs/MyPython3/lib/python3.7/site-packages/django/db/backends/mysql/operations.py"目录下的operations.py文件中报错行的decode改为encode,如下:

    query = query.encode(errors='replace')

步骤二、再次执行命令 :python manage.py makemigrations,执行成功

Python3 Django配置MySQL数据库_第3张图片

步骤三、执行命令 python manage.py migrate,完成Django连接MySQL创建数据表的操作

Python3 Django配置MySQL数据库_第4张图片

你可能感兴趣的:(python,Web开发,Python,Django,MySql)