django 2.2和mysql使用的常见问题


Posted in Python onJuly 18, 2019

可能是由于Django使用的MySQLdb库对Python3不支持,我们用采用了PyMySQL库来代替,导致出现各种坑,特别是执行以下2条命令的是时候:

python manage.py makemigrations
or
python manage.py inspectdb

第一个坑(提示你的mysqlclient版本过低)

无聊你是否执行pip install mysqlclient安装的最新版的,都抛出:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None

MD,LZ看到这错误太想骂人了,没办法采取网上的方法,注释大法!

找到Python安装路劲下的Python36-32\Lib\site-packages\django\db\backends\mysql\base.py文件

将文件中的如下代码注释(可能需先关闭pycharm IDE)

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

第二个坑(str类型没有decode方法)

对对对,py3默认str是unicode编码,通过encode方法编码成bytes类型,后者才有decode解码方法。
提示错误来源:Python36\lib\site-packages\django\db\backends\mysql\operations.py", line 149, in last_executed_query

这里网上一搜一堆的把encode改成decode方法,我靠,这谁的脑洞无敌了
源方法内容(pip安装的django 2.2.1原封不动的内容):

def last_executed_query(self, cursor, sql, params):
    # With MySQLdb, cursor objects have an (undocumented) "_executed"
    # attribute where the exact query sent to the database is saved.
    # See MySQLdb/cursors.py in the source distribution.
    query = getattr(cursor, '_executed', None)
    if query is not None:
      query = query.decode(errors='replace')
    return query

通过print大法输出query结果,内容为

SELECT @@SQL_AUTO_IS_NULL

数据类型为str

这里网上还有注释大法,LZ不知道注释了if的后遗症是啥有没有影响,于是也没采纳。

于是我去django的github去翻这个文件这个方法的最新/历史版本,结果最新master分支内容如下:

def last_executed_query(self, cursor, sql, params):
    # With MySQLdb, cursor objects have an (undocumented) "_executed"
    # attribute where the exact query sent to the database is saved.
    # See MySQLdb/cursors.py in the source distribution.
    # MySQLdb returns string, PyMySQL bytes.
    return force_str(getattr(cursor, '_executed', None), errors='replace')

看函数名,应该是强制去把SQL转换成str了

我靠!!!这尼玛官网2.2.1/2.2.2(当前最新版)的包不是害人么,记得该文件上面引入下这个方法

from django.utils.encoding import force_str

然后再执行managa.py命令,可以了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中正则表达式的用法实例汇总
Aug 18 Python
Python中json格式数据的编码与解码方法详解
Jul 01 Python
Python最小二乘法矩阵
Jan 02 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
Django REST framework内置路由用法
Jul 26 Python
python实现截取屏幕保存文件,删除N天前截图的例子
Aug 27 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
Mar 14 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
May 22 Python
Python如何实现机器人聊天
Sep 10 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 Python
详解Python二维数组与三维数组切片的方法
Jul 18 #Python
Django框架视图介绍与使用详解
Jul 18 #Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 #Python
使用django实现一个代码发布系统
Jul 18 #Python
python 将字符串中的数字相加求和的实现
Jul 18 #Python
TensorFlow实现简单的CNN的方法
Jul 18 #Python
windows上安装python3教程以及环境变量配置详解
Jul 18 #Python
You might like
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
Python实现的中国剩余定理算法示例
2017/08/05 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
Python输入二维数组方法
2018/04/13 Python
python删除文本中行数标签的方法
2018/05/31 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
Python WEB应用部署的实现方法
2019/01/02 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
2020/02/05 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
python计算auc的方法
2020/09/09 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
写好自荐信要注意的问题
2013/11/10 职场文书
旅游专业职业生涯规划范文
2014/01/13 职场文书
大跃进口号
2014/06/16 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
小学体育课教学反思
2016/02/16 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers