一、准备工作
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
创建好后,目录结构如下:
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版本不满足需求
A:
(1)通过安装符合版本的mysqlclient解决
执行以下命令:
pip install mysqlclient
如果在安装mysqlclient过程中,报 OSError: mysql_config not found 错误
解决方案如下:执行以下命令:(将mysql的安装路径加入环境变量) 令
exportPATH=$PATH:/usr/local/mysql/bin
(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__)
此时,将"/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,执行成功
步骤三、执行命令 python manage.py migrate,完成Django连接MySQL创建数据表的操作