天天看点

Django将数据库切换为Mysql及mysqlclient 1.3.13 or newer is required; you have 0.9.2报错解决方案

1.安装pymysql数据库驱动:

pip install pymysql

python3不支持MySQLdb,所以用pymysql代替

2.配置Django中的DATABASE

在settings.py中找到DATABASE

DATABASES = {

‘default’: {

‘ENGINE’: ‘django.db.backends.mysql’, #数据库引擎

‘NAME’: ‘dj_experiment_db’, #数据库名

‘USER’: ‘root’, #账户名

‘PASSWORD’: ‘password’, #密码

‘HOST’: ‘localhost’, #主机

‘PORT’: ‘3306’, #端口

}

}

接着在项目下的_init_.py添加如下代码

import pymysql

pymysql.install_as_MySQLdb()

然后在settings.py文件中设置TIME_ZONE为自己的时区

TIME_ZONE = ‘Asia/Shanghai’

最后执行数据库迁移命令

python manage.py makemigrations

python manage.py migrate

然后我们登录数据库,连接数据库dj_experiment_db,输入show tables;就可以看到django创建的框架应用的表了

报错解决方案

报错代码:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.2

使用python3.7+django2.2+pymysql时遇到这个错误,

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.2

1

别急,这主要是django2.2内部的一个版本限制在作怪

处理方案

1.修复源码

按照文中配置,报错django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

原因:django2.2和pymysql版本不匹配。mysqldb不支持python3.

解决方案:

1、raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.’ % Database.version)

  django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.  

解决办法:

C:\Python37\Lib\site-packages\django\db\backends\mysql(python安装目录)打开base.py,注释掉以下内容:        

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

2、File “C:\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’   

解决办法:

打开此文件把146行的decode修改为encode

找到安装python的这个位置

ps.django2.2不支持pyMySQL,但2.2是LTS,有想过试试mysqldb,但是MySQLDB又不支持python3。。。。的确让人头大。

————————————————

版权声明:本文为CSDN博主「温温净」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_45476498/article/details/100098297