彻底解决django 2.2与mysql兼容性问题(不用改源码)

背景

2.2是django最新一个稳定的LTS版本,但是大部分人在升级过程中都遇到了兼容性问题,也就是下面这个异常:

ImproperlyConfigured: mysqlclient 1.3.13 or newer is required
1
这个问题纠结我了好长时间,网上的解决办法都是复制粘贴:改源码;心中一万中草泥马。我们要相信,身为Python界元老级的框架不可能犯这种错误,而且最新的补丁包已经是2.2.10。

修复

1、添加新版组件

pip install mysqlclient

  1. 如果你项目根目录下有这个文件,直接打开添加mysqlclient即可:requirements.txt;

2、移除旧版组件引用

pip uninstall pymysql

  1. 如果你项目根目录下有这个文件,直接打开删除pymysql即可:requirements.txt;

打开根目录下的manage.py文件,找到下面两行代码:

import pymysql

pymysql.install_as_MySQLdb()

删除掉

3、CentOS 7.x

如果部署失败,提示找不到mysqlDB,执行以下命令:

yum install python36-devel -y
yum install mysql-devel -y
yum install gcc -y

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

原文链接:https://blog.csdn.net/lpw_cn/article/details/103978909

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django是一个开源的Python Web框架,它提供了丰富的功能和工具,用于快速开发高效的Web应用程序。Django源码是用Python编写的,整个框架的核心功能是基于一系列的Python模块和库实现的。其中与MySQL数据库相关的源码主要包括以下几个方面的内容。 首先,Django提供了一个名为"django.db.backends.mysql"的模块,该模块是实现与MySQL数据库交互的后端。在该模块中,包含了许多与数据库连接、数据查询和事务处理相关的类和函数的实现。通过这个模块,Django可以使用MySQL作为后端数据库来存储和操作数据。 其次,在"Django/db/models"目录下的模块中,也有一些与MySQL相关的源码。在这些模块中定义了一些特殊字段,如"django.db.models.IntegerField"、"django.db.models.DateTimeField"等,这些字段可以用于在MySQL数据库表中创建相应的列,并提供了与MySQL数据库的数据类型映射。 另外,在"Django/db/backends/mysql"目录中,还有一些实现MySQL数据库特定功能的源码。比如,"base.py"中定义了一些与MySQL连接、查询和事务相关的基本类和函数;"creation.py"中提供了创建MySQL数据库表的方法;"operations.py"中定义了一些执行与MySQL数据库相关的操作的方法。 最后,在"Django/db/models/sql/compiler.py"和"Django/db/models/sql/query.py"等文件中,还有一些与MySQL数据库查询语句的生成和执行相关的源码。这些源码通过封装MySQL数据库的原生查询语句,提供了更方便、高效的方式来进行数据库查询。 总的来说,Django源码中包含了许多与MySQL数据库交互的功能实现。通过这些源码Django可以通过Python与MySQL数据库进行连接、查询和操作数据,并提供了方便、高效的API接口供开发者使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值