Ok, vì vậy tôi đã gặp chính xác vấn đề tương tự. Có rất nhiều đề xuất về cách bạn có thể sửa đổi một phần của các thư viện hiện có để làm cho Python3 hoạt động với MySQL, nhưng tôi không tìm thấy bất kỳ đề xuất nào trong số chúng hoạt động 100%. Tôi không thể tạo trình kết nối MySQL Python chính thức để hoạt động với Django và Python 3.3.
Thay vào đó, những gì đã làm là chuyển sang thư viện PyMySQL. Vài tháng trước, tôi đã thử nó nhưng nó không hiệu quả với tôi. Bây giờ, có một phiên bản mới, 0.6.1 đã hoạt động tốt. Vì vậy, một vài chi tiết khác:
Môi trường của tôi:OSX 10.9, Python 3.3.3, Django 1.6.1, MyPySQL 0.6.1, MySQL Server 5.5 trên Windows
Cách làm cho nó hoạt động:
-
Cài đặt PyMySQL phiên bản 0.6.1 ( https://github.com/PyMySQL/PyMySQL/ ):bạn có thể cài đặt nó bằng cách sử dụng pip, tức là:
pip install PyMySQL
hoặc bằng cách tải xuống gói theo cách thủ công; có một tài liệu tốt trên trang web của họ về cách thực hiện điều đó. -
Mở Ứng dụng Django của bạn __init__.py và dán các dòng sau:
import pymysql pymysql.install_as_MySQLdb()
-
Bây giờ, hãy mở settings.py và đảm bảo thuộc tính DATABASE của bạn trông giống như sau:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'dbuser', 'PASSWORD': 'dbpassword', 'HOST': 'dbhost', 'PORT': '3306' } }
-
Vậy là xong, bạn sẽ có thể thực thi
python manage.py syncdb
vì vậy init MySQL DB của bạn; xem kết quả mẫu bên dưới: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. ...