Django 连接 MySQL 数据库及常见报错解决
程序员文章站
2022-06-16 23:43:28
[toc] Django 连接 MySQL数据库及常见报错解决 MySQL 的安装以及设置远程访问权限,不属于本笔记的重点,此处不做多余赘述 前提: MySQL 安装成功,且已配置远程访问权限(如在本地测试的忽略此项) 终端或者数据库管理工具连接 MySQL ,并新建项目所需数据库 创建数据库一定要 ......
目录
django 连接 mysql数据库及常见报错解决
mysql 的安装以及设置远程访问权限,不属于本笔记的重点,此处不做多余赘述
前提:
mysql 安装成功,且已配置远程访问权限(如在本地测试的忽略此项)
终端或者数据库管理工具连接 mysql ,并新建项目所需数据库
create database drf_shop character set utf8;
创建数据库一定要将字符编码设置为utf8,很多错误就是没正确设置编码导致的!
安装访问 mysql 的 python 模块
pip install pymysql
django 相关配置
工程文件夹(settings平级的文件夹)/_init_.py
from pymysql import install_as_mysqldb install_as_mysqldb()
settings.py 中替换默认 database
相关配置
databases = { 'default': { 'engine': 'django.db.backends.mysql', # django 数据库后台 'name': 'drf_shop', # 连接数据库的名称 'user': 'root', # 用户名 'password': '123456', # 密码 'host': '127.0.0.1', # 主机 'port': '3306', # 端口 } }
至此,就可以像使用sqlite一样使用mysql了!
可能会遇到的报错
首先需要保证前面所有步骤均配置成功
报错1: django.core.exceptions.improperlyconfigured: mysqlclient 1.x.xx or newer is required; you have 0.x.x.
报错内容:
raise improperlyconfigured('mysqlclient 1.x.xx or newer is required; you have %s.' % database.__version__) django.core.exceptions.improperlyconfigured: mysqlclient 1.x.xx or newer is required; you have 0.x.x.
这里
xx
表示版本,报错版本可能不同但解决方法时一样的
解决方法:
/python37(python安装目录)/lib/site-packages/django/db/backends/mysql/base.py
,注释掉以下内容:
# if version < (1, 3, 13): # raise improperlyconfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % database.__version__)
报错2:attributeerror: 'str' object has no attribute 'decode'
报错内容:
file "xx\python37\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query query = query.decode(errors='replace') attributeerror: 'str' object has no attribute 'decode'
解决方法:
打开 xx\python37\lib\site-packages\django\db\backends\mysql\operations.py
把146行的 decode
修改为 encode
即可
上一篇: Python3安装impala