Ok, więc miałem dokładnie ten sam problem. Istnieje wiele sugestii, jak zmodyfikować część istniejących bibliotek, aby Python3 działał z MySQL, ale nie znalazłem żadnej z nich, która działałaby w 100%. Nie udało mi się stworzyć oficjalnego konektora MySQL Python do pracy z Django i Pythonem 3.3.
To, co zadziałało, to przejście na bibliotekę PyMySQL. Kilka miesięcy temu już tego próbowałem, ale wtedy to nie działało. Teraz jest nowa wersja, 0.6.1, która działała po wyjęciu z pudełka. Kilka dodatkowych szczegółów:
Moje środowisko:OSX 10.9 , Python 3.3.3, Django 1.6.1, MyPySQL 0.6.1, MySQL Server 5.5 na Windows
Jak to zrobić:
-
Zainstaluj PyMySQL w wersji 0.6.1 (https://github.com/PyMySQL/PyMySQL/ ):możesz go zainstalować albo za pomocą pip, tj. :
pip install PyMySQL
lub ręcznie pobierając pakiet; na ich stronie internetowej znajduje się dobra dokumentacja, jak to zrobić. -
Otwórz swoją aplikację Django __init__.py i wklej następujące linie:
import pymysql pymysql.install_as_MySQLdb()
-
Teraz otwórz settings.py i upewnij się, że właściwość BAZY DANYCH wygląda tak:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'dbuser', 'PASSWORD': 'dbpassword', 'HOST': 'dbhost', 'PORT': '3306' } }
-
To wszystko, powinieneś być w stanie wykonać
python manage.py syncdb
więc zainicjuj swoją bazę danych MySQL; zobacz przykładowe wyjście poniżej: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. ...