Добре, значи имах точно същия проблем. Има много предложения как можете да модифицирате част от съществуващите библиотеки, за да накарате Python3 да работи с MySQL, но не открих нито едно от тях да работи на 100%. Не успях да направя официален MySQL Python конектор за работа с Django и Python 3.3.
Това, което свърши работа, беше вместо това превключването към библиотеката PyMySQL. Преди няколко месеца вече го пробвах, но тогава не ми се получи. Сега има нова версия, 0.6.1, която работи от кутията. И така, още малко подробности:
Моята среда:OSX 10.9 , Python 3.3.3, Django 1.6.1, MyPySQL 0.6.1, MySQL Server 5.5 на Windows
Как да го накарам да работи:
-
Инсталирайте PyMySQL версия 0.6.1 (https://github.com/PyMySQL/PyMySQL/ ):можете да го инсталирате или с помощта на pip, т.е.:
pip install PyMySQL
или чрез ръчно изтегляне на пакета; на уебсайта им има добра документация как да направите това. -
Отворете приложението си Django __init__.py и поставете следните редове:
import pymysql pymysql.install_as_MySQLdb()
-
Сега отворете settings.py и се уверете, че вашето свойство DATABASE изглежда така:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'dbuser', 'PASSWORD': 'dbpassword', 'HOST': 'dbhost', 'PORT': '3306' } }
-
Това е всичко, трябва да можете да изпълните
python manage.py syncdb
така че инициирайте вашата MySQL DB; вижте примерния изход по-долу: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. ...