Ok, donc je rencontrais exactement le même problème. Il existe de nombreuses suggestions sur la façon dont vous pouvez modifier une partie des bibliothèques existantes pour que Python3 fonctionne avec MySQL, mais je n'en ai trouvé aucune qui fonctionne à 100%. Je n'ai pas pu faire en sorte que le connecteur Python MySQL officiel fonctionne avec Django et Python 3.3.
Ce qui a fonctionné a été de passer à la bibliothèque PyMySQL à la place. Il y a quelques mois, je l'ai déjà essayé mais cela n'a pas fonctionné pour moi à l'époque. Maintenant, il existe une nouvelle version, la 0.6.1, qui a fonctionné dès le départ. Alors, quelques détails supplémentaires :
Mon environnement :OSX 10.9 , Python 3.3.3, Django 1.6.1, MyPySQL 0.6.1, MySQL Server 5.5 sous Windows
Comment le faire fonctionner :
-
Installez PyMySQL version 0.6.1 (https://github.com/PyMySQL/PyMySQL/ ) :vous pouvez l'installer soit en utilisant pip, c'est-à-dire :
pip install PyMySQL
ou en téléchargeant manuellement le package ; il y a une bonne documentation sur leur site Web sur la façon de le faire. -
Ouvrez votre application Django __init__.py et collez les lignes suivantes :
import pymysql pymysql.install_as_MySQLdb()
-
Maintenant, ouvrez settings.py et assurez-vous que votre propriété DATABASE ressemble à ceci :
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'dbuser', 'PASSWORD': 'dbpassword', 'HOST': 'dbhost', 'PORT': '3306' } }
-
Voilà, vous devriez pouvoir exécuter
python manage.py syncdb
alors initialisez votre base de données MySQL ; voir l'exemple de sortie ci-dessous :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. ...