Как сделать Django работать с неподдерживаемыми драйверами MySQL, такими как Gevent-Mysql или Joysql MySQL?
-
26-09-2019 - |
Вопрос
Я заинтересован в беге Django на асинхронизированной рамки, такой как совпадение или Gevent. Оба рамки поставляются со своим собственным async MySQL водителем.
Проблема Django только официально поддерживает MySQLDB. Что мне нужно сделать, чтобы сделать Django работать с драйверами MySQL, которые приходят с Gevent или Callence?
Есть ли пошаговое направление где-то, что я могу следовать? Это главное обязательство?
Спасибо.
Решение
Три приветствия для предложения @ Traviscline пойти с Pymysql.. Отказ Его предложение было основано на Этот пост от Mozilla. Отказ все, что нужно, это простой патч до вашего файла manage.py
#!/usr/bin/env python
+try:
+ import pymysql
+ pymysql.install_as_MySQLdb()
+except ImportError:
+ pass
Изменение импорта в файл настроек и обезьяна () поскольку PymySQL является чистым драйвером Python.
Трэвис упомянул, что он тестирует для совместимости, изменив импорт и запустив ненужные для PymySQL, MySQLDB и MyConnpy.
Обратите внимание, что уже есть Примеры более тонких деталей, чтобы осмотреть для - Но в целом это элегантное, ремонтное решение. Я буду обновлять, когда я получаю это бегать в производстве!
Другие советы
Я был успешным в том, чтобы PymySQL работать с Django, выполняя следующее:
- Прокомментируйте блок TRY - кроме в начале Base.py. Файл, где MySQLDB импортируется.
Добавьте следующие четыре строки в Base.py.
try: import pymysql as Database except ImportError: pass
Как упоминалось в ссылке, что Egbutter. Опубликовано, перейдите на файл base.py и найдите-заменить
MySQLdb
с участиемpymysql
В соответствующих участках файла, т. Е. Не мешайте изменять сообщения об ошибках (вы могли бы, но это зависит от вас).Сохранить BASE.PY и запустите следующую команду из местоположения APT, чтобы увидеть начать сервер.
python manage.py runserver