Django连接myslq数据库
版本信息
django 2.1.4
pymyslq 0.9.3
mysql 5.7
条件准备
电脑中安装有mysql数据库
需要用到的python第三方:pymysql
安装:
pip install pymysql
配置settings.py文件
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
# mysql数据库名称
'NAME': 'chaochao',
# 登陆mysql的用户名
'USER': 'root',
# 登陆mysql的用户名密码
'PASSWORD': 'chaochao666',
# mysql ip地址,不填表示使用默认地址,默认为localhost
'HOST': '',
# mysql端口号,不填表示使用默认端口,默认为3306
'PORT': '',
}
}
这里的 name ,即mysql数据库的数据库名,需要在执行迁移命令之前手动创建好
并且,数据库的编码格式需要设置为utf-8
使用pymysql将Django与mysql连接起来
# __init__.py 文件
import pymysql
pymysql.install_as_MySQLdb()
如果显示报错,ImproperlyConfigured: mysqlclient 1.4.0 or newer is required; you have 0.9.3.
将代码上面的代码修改为
# __init__.py 文件
import pymysql
pymysql.version_info = (1, 4, 0, "final", 0) # 这里的三个数字需要根据情况修改
pymysql.install_as_MySQLdb()
第二行中的三个数字,需要根据实际情况修改
这三个数字可以在报错信息中看到
第二行中的三个数字和报错信息中的三个数字报错一致即可
这样就将Django与myslq联系在了一起
编写models.py 文件后,执行迁移指令,进入mysql,即可看到myslq中自动生成了一些表
如果是使用其他数据库执行迁移命令之后,修改为mysql数据库,需要重新创建超级用户
即执行命令 python manage.py createsuperuser
因为之前所有的数据都在之前迁移时使用的数据库中,现在修改为了mysql,所以之前所有的数据都没有了
这是,创建超级用户,进入后台管理页面,为数据库添加数据,保存之后,进入mysql,可以发现数据已经保存到mysql中了
models.py 的类中,没有定义 id 这一列,但是表中却有着一列
是因为在类中没有指定 主键
如果在models.py 的类中指定了 主键,自动创建的表中就不会有 id 列了
也可以直接在mysql在相应的表中添加数据
无论是用过超级用户,还是直接在mysql的表中添加数据,效果都是一样的
使用Django连接mysql数据库,可能会报一个错误,显示 mysqlclient 的版本过低,这是因为django的原因
这种情况,有两种解决方法
1、安装 2.1.4 版本的django(本人使用的版本就是这个)
2、修改django源码,需要注释掉一行代码,需要的朋友可以自行搜索