如何使Django使用不受支持的MySQL驱动程序,如gevent MySQL或Concurrence';谁是MySQL驱动程序?
我对在Concurrence或gevent等异步框架上运行Django感兴趣。这两个框架都有自己的异步MySQL驱动程序 问题是Django只正式支持MySQLdb。我需要做什么才能使Django与gevent或Concurrence附带的MySQL驱动程序一起工作 有没有我可以遵循的循序渐进的指南?这是一项重大任务吗如何使Django使用不受支持的MySQL驱动程序,如gevent MySQL或Concurrence';谁是MySQL驱动程序?,mysql,django,asynchronous,django-database,gevent,Mysql,Django,Asynchronous,Django Database,Gevent,我对在Concurrence或gevent等异步框架上运行Django感兴趣。这两个框架都有自己的异步MySQL驱动程序 问题是Django只正式支持MySQLdb。我需要做什么才能使Django与gevent或Concurrence附带的MySQL驱动程序一起工作 有没有我可以遵循的循序渐进的指南?这是一项重大任务吗 谢谢。为@traviscline的建议欢呼三声。他的建议是建立在他的基础上的。只需要一个 更改设置文件中的导入,以及monkeypatch(),因为pymysql是纯python
谢谢。为@traviscline的建议欢呼三声。他的建议是建立在他的基础上的。只需要一个 更改设置文件中的导入,以及monkeypatch(),因为pymysql是纯python驱动程序 travis提到,他通过更改导入并运行pymysql、mysqldb和myconnpy的单元测试来测试兼容性
请注意,已经有了,但总体而言,这是一个优雅的、可维护的解决方案。当我在生产中运行时,我将进行更新 我成功地让pymysql与Django合作,完成了以下工作:
MySQLdb
withpymysql
,也就是说,不要费心更改错误消息(可以,但这取决于您)python manage.py runserver
我得到一个
Thing2Literal
错误(看起来不像是在pymysql中实现的?)如果您使用的是足够新的mysqldb版本,这不是问题。此外,上面提到的bug 668664(在父进程终止时终止查询)在生产中对我来说从来都不是一个明显的问题。。但是,在我工作的时候,该站点每天没有看到超过几千个请求。这是在我花了大量精力试图让默认的mysql驱动程序在Python3.4和Django中工作之后实现的。谢谢我使用的是OSX 10.11,使用的是Mamp,这个解决方案适用于Python3.6和Django,假设gevent mysql的API与MySQLdb匹配,那么编写和使用一个非常简单的自定义数据库后端将非常简单。我知道其他人会感兴趣,所以请分享你是否/何时做这件事。我敢打赌,freenode上的gevent中的人一定会提供详细信息。是一个纯python MySQLdb api兼容的客户端库,Mozilla将其与Firefox同步服务器的gevent一起使用。您可以编写一个小型的定制db引擎(正如我前面提到的),或者简单地使用以下方法:在中修补PyMySQL。
try:
import pymysql as Database
except ImportError:
pass
python manage.py runserver