mysql - 如何让 Django 使用不受支持的 MySQL 驱动程序,例如 gevent-mysql 或 Concurrence 的 MySQL 驱动程序?

标签 mysql django asynchronous django-database gevent

我对在 Concurrence 或 gevent 等异步框架上运行 Django 很感兴趣。这两个框架都带有自己的异步 MySQL 驱动程序。

问题是 Django 只官方支持 MySQLdb。我需要做什么才能使 Django 与 gevent 或 Concurrence 附带的 MySQL 驱动程序一起工作?

是否有我可以遵循的分步指南?这是一项重大事业吗?

谢谢。

最佳答案

为@traviscline 的建议与 pymysql 一起欢呼三声.他的建议是基于 this post from mozilla .只需要一个simple patch to your manage.py file

#!/usr/bin/env python
+try:
+    import pymysql
+    pymysql.install_as_MySQLdb()
+except ImportError:
+    pass 

更改设置文件中的导入和monkeypatch(),因为pymysql 是一个纯python 驱动程序。

travis 提到他通过更改导入和运行 pymysql、mysqldb 和 myconnpy 的单元测试来测试兼容性。

请注意,已经有 examples of finer details to watch out for - 但总的来说,这是一个优雅、可维护的解决方案。当我在生产中运行时,我会更新!

关于mysql - 如何让 Django 使用不受支持的 MySQL 驱动程序,例如 gevent-mysql 或 Concurrence 的 MySQL 驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2636536/

相关文章:

django - Django 中的 for 循环迭代

grails - 带有HttpSession的Grails异步请求的行为异常

swift - 在任务完成时设置启动器 View Controller 的变量

PHP/MySQL 链接每个单词

Django 获取内联表单管理员中的实例

mysql - 用条件更新不同的列?

angularjs - 提高绩效

c# - 锁定异步任务c#

python - mysql表中插入数据的查询包含外键

Mysql 5.0 LAST_INSERT_ID()升级到5.6后有所不同