python 虚拟环境 django.db 报错_刨根问底,完美解决Django2版本连接MySQL报错的问题...

本文介绍了在Django2版本中遇到连接MySQL的错误,以及如何在不修改Django源码的情况下解决问题。关键在于理解Django对MySQLdb版本的要求,并通过正确安装和配置pymysql来满足这些要求。通过分析pymysql的源码,展示了如何确定和安装合适版本的pymysql来避免版本不匹配导致的错误。
摘要由CSDN通过智能技术生成

引子

关于Django2版本连接MySQL发生的问题以及修改源码的解决方法参考下面这篇文章:

但是,上面这种修改源码的方法在生产环境中使用的话会有很多问题。

本文为大家详细讲解如何在不修改Django源码的情况下解决这个问题。

Django中的源码解析

我们来看一下我们使用的Python解释器(可以是全局的也可以是虚拟环境的)中django包有关MySQL配置的源码。

源码位置是:

(你的Python解释器安装目录或者虚拟环境目录)\django21\Lib\site-packages\django\db\backends\mysql\base.py

这个base.py文件中的内容有点多,我们把最关键的部分挑出来解释一下:

"""MySQL database backend for Django.

Requires mysqlclient: https://pypi.org/project/mysqlclient/ # 之前没安装的话得从pypi中下载mysqlclient包"""

importrefrom django.core.exceptions importImproperlyConfiguredfrom django.db importutilsfrom django.db.backends importutils as backend_utilsfrom django.db.backends.base.base importBaseDatabaseWrapperfrom django.utils.functional importcached_propertytry:importMySQLdb as Database # 导入MySQLdb模块exceptImportError as err:raiseImproperlyConfigured('Error loading MySQLdb module.\n'

'Did you install mysqlclient?')fromerrfrom MySQLdb.constants import CLIENT, FIELD_TYPE #isort:skip

from MySQLdb.converters import conversions #isort:skip

#Some of these import MySQLdb, so import them after checking if it's installed.

from .client import DatabaseClient #isort:skip

from .creation import DatabaseCreation #isort:skip

from .features import DatabaseFeatures #isort:skip

from .introspection import DatabaseIntrospection #isort:skip

from .operations import DatabaseOperations #isort:skip

from .schema import DatabaseSche

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值