我正在学习以MySQL为后端的Django。 我安装了Oracle的mysql连接器以与mysql连接。 但是,当我运行python manage.py时,出现此错误
Traceback (most recent call last):
File"C:\Python33\lib\site-packages\django\db\backends\mysql\base.py", line 14, in
import MySQLdb as Database
ImportError: No module named 'MySQLdb'
有点奇怪 我在想如果我安装了mysql connector / python,我不再需要MySQLdb了。
有人可以帮忙解释一下吗? 谢谢!
我的数据库设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':"djangolearn",
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '3306',
}}
# for mysql connector use this
DATABASES = {
'default': {
'ENGINE': 'mysql.connector.django',
'NAME': 'dbname',
'USER': 'user',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '3306',
},
}
从8.0.13版本开始的mysql-connector-python有一个错误,使它无法与Django一起使用:code.djangoproject.com/ticket/30469 bugs.mysql.com/bug.php?id=92001为了避免 该错误,在数据库选项中添加选项use_pure: True。
如果您使用的是Oracle的连接器,则需要使用其Django db后端。
请参阅他们的文档。
谢谢! 我也看到了。
try this for MySQL Connector that working in django:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangolearn',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
or try this for MySQL Connector pool that working in django:
DATABASES = {
'default': {
'ENGINE': 'PyMysqlPool.mysql.connector.django',
'NAME': 'djangolearn',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {
'autocommit': True,
'pool': {
#use = 0 no pool else use pool
"use":0,
# size is >=0, 0 is dynamic pool
"size":10,
#pool name
"name":"local",
}
},
}
}
尝试:pip install mysql-python
如果这不起作用:确保您可以连接到数据库(使用phpmyadmin或mysql工作台进行测试)