sql >> Base de Datos >  >> RDS >> Mysql

django+mysql='DatabaseWrapper' objeto no tiene atributo error 'Base de datos'

Ok, entonces estaba experimentando exactamente el mismo problema. Hay muchas sugerencias sobre cómo puede modificar parte de las bibliotecas existentes para hacer que Python3 funcione con MySQL, pero no encontré ninguna que funcionara al 100%. No pude hacer que el conector MySQL Python oficial funcione con Django y Python 3.3.

Lo que funcionó fue cambiar a la biblioteca PyMySQL. Hace unos meses ya lo probé pero entonces no me funcionó. Ahora, hay una nueva versión, 0.6.1, que funcionó de inmediato. Entonces, algunos detalles más:

Mi entorno:OSX 10.9, Python 3.3.3, Django 1.6.1, MyPySQL 0.6.1, MySQL Server 5.5 en Windows

Cómo hacer que funcione:

  1. Instale PyMySQL versión 0.6.1 (https://github.com/PyMySQL/PyMySQL/ ):puede instalarlo usando pip, es decir:pip install PyMySQL o descargando manualmente el paquete; hay una buena documentación en su sitio web sobre cómo hacerlo.

  2. Abra su aplicación Django __init__.py y pega las siguientes líneas:

    import pymysql
    pymysql.install_as_MySQLdb() 
    
  3. Ahora, abre settings.py y asegúrese de que su propiedad DATABASE se vea así:

    DATABASES = {
       'default': {
           'ENGINE': 'django.db.backends.mysql',
           'NAME': 'mydb',
           'USER': 'dbuser',
           'PASSWORD': 'dbpassword',
           'HOST': 'dbhost',
           'PORT': '3306'
        }
    }
    
  4. Eso es todo, debería poder ejecutar python manage.py syncdb así que inicie su base de datos MySQL; vea el resultado de muestra a continuación:

    Creating tables ...
    Creating table django_admin_log
    Creating table auth_permission
    Creating table auth_group_permissions
    ...
    ...
    Creating table socialaccount_socialtoken
    
    You just installed Django's auth system, which means you don't have any superusers defined.
    ...