即使经过数小时和数小时的谷歌搜索,也无法找到答案。搜索堆栈溢出。我向你们保证,我已经看到了所有可能被视为相关的答案,但这些答案都没有解决我所面临的问题。没有进一步的麻烦 -
目前在shell中我可以这样做:
Python 2.7.11+ (default, Apr 17 2016, 14:00:29)
[GCC 5.3.1 20160413] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from distutils.sysconfig import get_python_lib
>>> print get_python_lib()
/usr/lib/python2.7/dist-packages
>>> import mysql.connector
>>> db = mysql.connector.connect(user='root', password='test123', host='127.0.0.1', database='mydb')
>>> db
<mysql.connector.connection.MySQLConnection object at 0x7fd3a80536d0>
验证我是否已安装此模块。但是,当我尝试转到 settings.py 文件以将数据库引擎设置为
时DATABASES = {
'default': {
'ENGINE': 'mysql.connector.django',
'NAME': 'mydb',
'USER': 'root',
'PASSWORD': 'test123',
'HOST': '127.0.0.1',
'PORT': '3306'
}
}
并尝试启动我的服务器我一直收到错误:
django.core.exceptions.ImproperlyConfigured: 'mysql.connector.django'
isn't an available database backend.
不确定如何解决这个问题。我在Django版本1.9.7上,Python版本显示在上面的代码片段中
使用'mysql.connector.django'与使用'django.db.backends.mysql'之间有什么区别?
答案 0 :(得分:1)
使用'mysql.connector.django'有什么区别 与使用'django.db.backends.mysql'?
首先是前者是推荐的方法,而后者则不是。前者完全支持,但后者需要1.1.x版本,django文档中还有一个警告,即更新版本的django可能无法完全支持它。
Python数据库API在PEP 249中有描述.MySQL有三个 实施此API的主要驱动因素:
MySQLdb是一个已开发和支持的本机驱动程序 安迪·杜斯曼十多年来。 mysqlclient是MySQLdb的一个分支 特别支持Python 3,可以用作替代品 MySQLdb的。 在撰写本文时,这是推荐的选择 使用MySQL与Django 。 MySQL Connector / Python是纯Python 来自Oracle的驱动程序,不需要MySQL客户端库或 标准库之外的任何Python模块。所有这些司机都是 线程安全并提供连接池。 MySQLdb是唯一的一个 目前不支持Python 3。
除了DB API驱动程序,Django还需要一个适配器来访问 来自ORM的数据库驱动程序。 Django提供适配器 MySQLdb / mysqlclient,而MySQL Connector / Python包含它自己的。
答案 1 :(得分:0)
这是我搜索了一天后成功的解决方案:先安装以下软件包
django==2.2.15
mysql-connector-python==8.0.23
django-mysql==3.9.0
然后你可以在设置文件中进行配置
DATABASES = {
'default': {
'ENGINE': 'mysql.connector.django',
'NAME': 'mydb',
'USER': 'root',
'PASSWORD': 'test123',
'HOST': '127.0.0.1',
'PORT': '3306'
}
}