Dobře, takže jsem měl úplně stejný problém. Existuje spousta návrhů, jak můžete upravit část existujících knihoven, aby Python3 fungoval s MySQL, ale nenašel jsem, že by žádný z nich fungoval na 100 %. Nebyl jsem schopen vytvořit oficiální konektor MySQL Python, aby fungoval s Django a Pythonem 3.3.
Co fungovalo, byl přechod na knihovnu PyMySQL. Před pár měsíci jsem to už zkoušel, ale tenkrát mi to nefungovalo. Nyní je tu nová verze, 0.6.1, která fungovala hned po vybalení. Takže pár dalších podrobností:
Moje prostředí:OSX 10.9 , Python 3.3.3, Django 1.6.1, MyPySQL 0.6.1, MySQL Server 5.5 na Windows
Jak to udělat, aby to fungovalo:
-
Nainstalujte PyMySQL verzi 0.6.1 (https://github.com/PyMySQL/PyMySQL/ ):můžete jej nainstalovat buď pomocí pip, tj. :
pip install PyMySQL
nebo ručním stažením balíčku; na jejich webu je dobrá dokumentace, jak to udělat. -
Otevřete aplikaci Django __init__.py a vložte následující řádky:
import pymysql pymysql.install_as_MySQLdb()
-
Nyní otevřete settings.py a ujistěte se, že vaše vlastnost DATABASE vypadá takto:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'dbuser', 'PASSWORD': 'dbpassword', 'HOST': 'dbhost', 'PORT': '3306' } }
-
To je vše, měli byste být schopni spustit
python manage.py syncdb
tak spusťte svou databázi MySQL; viz ukázkový výstup níže: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. ...