Cómo hacer que el trabajo de Django con los conductores de MySQL no autorizados tales como GEvent-MySQL o MySQL controlador de concurrencia?

StackOverflow https://stackoverflow.com/questions/2636536

Pregunta

Estoy interesado en el funcionamiento de Django en un marco asíncrono como concurrencia o GEvent. Ambos marcos vienen con su propio controlador asincrónico MySQL.

El problema es que Django sólo admite oficialmente MySQLdb. ¿Qué necesito hacer para hacer el trabajo de Django con los controladores de MySQL que vienen con GEvent o concurrencia?

¿Hay algún lugar una guía paso a paso que puedo seguir? ¿Es esta una empresa importante?

Gracias.

¿Fue útil?

Solución

tres hurras por sugerencia de @ traviscline para ir con pymysql . su sugerencia se basa en este post de Mozilla . todo lo que necesita es un sencilla parche para su archivo manage.py

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

cambio de la importación del archivo de configuración, y monkeypatch (), ya que es un conductor pymysql pitón puro.

Travis mencionó que se pone a prueba de compatibilidad cambiando las importaciones y en funcionamiento los unittests para pymysql, MySQLdb y myconnpy.

Tenga en cuenta que ya hay ejemplos de finos detalles a tener en cuenta - pero en general se trata de una solución elegante, fácil de mantener. Voy a actualizar cuando llegue a este espectáculo de correr en la producción!

Otros consejos

tuve éxito en conseguir pymysql a trabajar con Django haciendo lo siguiente:

  1. comentario la excepción try-bloque en el comienzo de la base.py de archivos, donde ha sido importada MySQLdb.
  2. Añadir las cuatro líneas siguientes a base.py

    try:
        import pymysql as Database
    except ImportError:
        pass
    
  3. Como se mencionó en el enlace que egbutter publicado, vaya al archivo base.py y encontrar reemplazo MySQLdb con pymysql en las partes pertinentes del expediente, es decir, no se molestan en cambiar los mensajes de error (que podría, pero eso depende de usted).

  4. Guardar base.py, y ejecute el siguiente comando desde la ubicación apta para ver el servidor de arranque.

    python manage.py runserver
    
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top