Ok, ik had dus precies hetzelfde probleem. Er zijn veel suggesties over hoe je een deel van bestaande bibliotheken kunt aanpassen om Python3 met MySQL te laten werken, maar ik heb geen enkele gevonden die 100% werkt. Ik kon geen officiële MySQL Python-connector maken om te werken met Django en Python 3.3.
Wat wel werkte, was in plaats daarvan overschakelen naar de PyMySQL-bibliotheek. Een paar maanden geleden heb ik het al geprobeerd, maar toen werkte het niet voor mij. Nu is er een nieuwe versie, 0.6.1, die uit de doos werkte. Dus nog een paar details:
Mijn omgeving:OSX 10.9, Python 3.3.3, Django 1.6.1, MyPySQL 0.6.1, MySQL Server 5.5 op Windows
Hoe het te laten werken:
-
Installeer PyMySQL versie 0.6.1 (https://github.com/PyMySQL/PyMySQL/ ):je kunt het installeren met pip, d.w.z.:
pip install PyMySQL
of door het pakket handmatig te downloaden; er is een goede documentatie op hun website over hoe dat te doen. -
Open je Django-app __init__.py en plak de volgende regels:
import pymysql pymysql.install_as_MySQLdb()
-
Open nu settings.py en zorg ervoor dat uw DATABASE-eigenschap er als volgt uitziet:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'dbuser', 'PASSWORD': 'dbpassword', 'HOST': 'dbhost', 'PORT': '3306' } }
-
Dat is alles, u zou
python manage.py syncdb
moeten kunnen uitvoeren dus init je MySQL DB; zie de voorbeelduitvoer hieronder: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. ...