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

我刚刚通过使用 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/

相关文章:

mysql - 如何在 SQL 查询中对 LEFT JOIN 的顺序进行排序?

php - DateTime 类的对象无法转换为字符串

mysql - 最好的 MySQL 性能调优工具?

mysql - 如何在mysql中将字符串转换为 float ?

mysql - 设计用户角色和权限系统的最佳实践?

php - PDO fetchAll 将键值对分组到 assoc 数组中

mysql - 列计数与第 1 行的值计数不匹配

mysql - 计算执行的查询数

php - MySQL 删除多列

php - 如何使用 Laravel 4 Eloquent 连接列?