django mysql connector,MySQL Connector / python在Django中不起作用

阎英朗
2023-12-01

我正在学习以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工作台进行测试)

 类似资料: