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

标签 python mysql django mysql-python pymysql

我刚刚通过使用 PyMySQL 而不是 MySQLdb 解决了我的 Django 1.3 应用程序中的一些问题。我按照本教程了解如何进行切换:http://web-eng-help.blogspot.com/2010/09/install-mysql-5-for-python-26-and.html

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

我在 localhost 上使用它,然后将其上传到某个主机。

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

最佳答案

PyMySQL 和 MySQLdb 提供相同的功能 - 它们都是数据库连接器。区别在于 MySQLdb 是 C 扩展而 PyMySQL 是纯 Python 的实现。

尝试 PyMySQL 有几个原因:

  • 在某些系统上运行可能更容易
  • 它适用于 PyPy
  • 它可以“绿化”并与 gevent 一起使用

在 Django 中使用它的正确方法是导入它并告诉它在您的顶级文件中模拟 MySQLdb,通常是 manage.py。将以下代码放在 manage.py(或启动服务器时调用的任何文件)的最顶部:

try:
    import pymysql
    pymysql.install_as_MySQLdb()
except ImportError:
    pass

关于python - 什么是 PyMySQL,它与 MySQLdb 有何不同?它会影响 Django 部署吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7224807/

相关文章:

python - 将 scipy 稀疏行矩阵添加到另一个稀疏矩阵

python - 如何在 python 中使用 urllib2 加快获取页面的速度?

css - Django 样式化登录表单并添加其他跨度

Django:如何将数据保存到 ManyToManyField?

python - Windows 上的ezyang/git-ftp

python - "Failed to locate libpython within timeout period."尝试使用 pyflame 分析不在容器中的 .py 文件时

php - 单击按钮时方法发布不起作用

mysql - select query in where condition 基于主要的select query values

while 循环中的 PHP str_replace

python - 如何在 django oscar 的策略中应用可变税?