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

Con*_*ion 22 mysql django asynchronous django-database gevent

我有兴趣在像Concurrence或gevent这样的异步框架上运行Django.两个框架都带有自己的异步MySQL驱动程序.

问题是Django只正式支持MySQLdb.我需要做些什么才能让Django使用gevent或Concurrence附带的MySQL驱动程序?

我可以遵循某个地方的分步指南吗?这是一项重大任务吗?

谢谢.

egb*_*ter 36

@ traviscline建议使用pymysql的三个欢呼声.他的建议是基于mozilla的这篇文章.只需对manage.py文件进行简单的修补即可

#!/usr/bin/env python
+try:
+    import pymysql
+    pymysql.install_as_MySQLdb()
+except ImportError:
+    pass 
Run Code Online (Sandbox Code Playgroud)

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

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

请注意,已经有一些细节需要注意细节 - 但总体而言,这是一个优雅,可维护的解决方案.当我在生产中运行时,我会更新!

  • 我得到一个'Thing2Literal`错误(看起来不像是在pymysql中实现的?) (3认同)