我对在 Concurrence 或 gevent 等异步框架上运行 Django 很感兴趣。这两个框架都带有自己的异步 MySQL 驱动程序。
问题是 Django 只官方支持 MySQLdb。我需要做什么才能使 Django 与 gevent 或 Concurrence 附带的 MySQL 驱动程序一起工作?
是否有我可以遵循的分步指南?这是一项重大事业吗?
谢谢。
我对在 Concurrence 或 gevent 等异步框架上运行 Django 很感兴趣。这两个框架都带有自己的异步 MySQL 驱动程序。
问题是 Django 只官方支持 MySQLdb。我需要做什么才能使 Django 与 gevent 或 Concurrence 附带的 MySQL 驱动程序一起工作?
是否有我可以遵循的分步指南?这是一项重大事业吗?
谢谢。
为@traviscline 建议使用pymysql欢呼三声。他的建议是基于Mozilla 的这篇文章。只需要对 manage.py 文件打一个简单的补丁
#!/usr/bin/env python
+try:
+ import pymysql
+ pymysql.install_as_MySQLdb()
+except ImportError:
+ pass
更改设置文件中的导入和monkeypatch(),因为pymysql是一个纯python驱动程序。
travis 提到他通过更改导入和运行 pymysql、mysqldb 和 myconnpy 的单元测试来测试兼容性。
请注意,已经有一些需要注意的细节示例——但总的来说,这是一个优雅、可维护的解决方案。当我在生产中运行时,我会更新!
我成功地让 pymysql 与 Django 一起执行以下操作:
将以下四行添加到base.py
try:
import pymysql as Database
except ImportError:
pass
如egbutter发布的链接中所述,转到 base.py 文件并在文件的相关部分查找替换MySQLdb
,pymysql
即不要费心更改错误消息(您可以,但这取决于您)。
保存 base.py,然后从 apt 位置运行以下命令以查看服务器启动。
python manage.py runserver