一尘不染

什么是PyMySQL,它与MySQLdb有何不同?它会影响Django的部署吗?

django

我只是通过使用PyMySQL而不是MySQLdb解决了Django

现在,我想知道PyMySQL到底是什么以及它与MySQLdb有何不同。

我在本地主机上使用它,然后将其上传到某些主机。

在本地主机上使用PyMySQL并托管它们提供的任何内容都可以吗?由于我已将base.py和introspection.py中的“ MySQLdb”更改为“ PyMySQL”,更改这些文件后是否需要将其上传到服务器?还是因为它是Django的文件,因为Django已经被上传到那里了,这没关系吗?


阅读 603

收藏
2020-03-30

共2个答案

一尘不染

PyMySQL和MySQLdb都是Python的数据库连接器,它们是使Python程序能够与MySQL服务器通信的库。

通常,在部署应用程序时,你永远不会上传核心Django文件。如果Django在你的部署服务器上运行良好,则绝对不需要在此进行任何更改。DB驱动程序比ORM还要低一两步,并且你编写的代码当然都不取决于所使用的代码。

2020-03-30
一尘不染

PyMySQL和MySQLdb提供相同的功能-它们都是数据库连接器。不同之处在于实现方式,其中MySQLdb是C扩展,而PyMySQL是纯Python。

尝试使用PyMySQL的原因如下:

  • 在某些系统上运行可能会更容易
  • 它与PyPy一起使用
  • 可以“绿化”并与gevent一起使用
    在Django中使用它的正确方法是导入它,并告诉它在顶级文件(通常为manage.py)中模拟MySQLdb。将以下代码放在manage.py(或启动服务器时调用的任何文件)的最上方:
try:
    import pymysql
    pymysql.install_as_MySQLdb()
except ImportError:
    pass
2020-03-30