【发布时间】:2018-08-27 00:12:33
【问题描述】:
Django的默认数据库是sqlite,但是我想用MYSQL代替。
由于python3.x不支持MYSQLdb模块,django的官方文档推荐使用mysqlclient和@987654323 @instead.Here 是原始文档:
MySQL 有几个驱动程序可以实现 PEP 249 中描述的 Python 数据库 API:
• mysqlclient 是本机驱动程序。这是推荐的选择。
• MySQL Connector/Python 是来自 Oracle 的纯 Python 驱动程序,不需要 MySQL 客户端库 或标准库之外的任何 Python 模块。
这些驱动程序是线程安全的并提供连接池。
除了 DB API 驱动程序之外,Django 还需要一个适配器来从其 ORM 访问数据库驱动程序。 Django 提供 mysqlclient 的适配器,而 MySQL 连接器/Python 包含它自己的。
我有最新版本的mysql-client 和mysql-connector-python,但是当我执行migrate 命令时,出现错误。这是消息的一部分:
.wrapper 在 0x7f2112e99d90 处启动的线程中未处理的异常>
回溯(最近一次通话最后): 文件“/home/lothakim/anaconda3/envs/py36/lib/python3.6/site-packages/django/db/backends/mysql/base.py”,第 15 行,在
导入 MySQLdb 作为数据库
ModuleNotFoundError:没有名为 'MySQLdb'django 的模块。
.......
core.exceptions.ImproperlyConfigured:加载 MySQLdb 模块时出错。
您是否安装了 mysqlclient?
似乎是数据库连接的问题。但是我按照官方教程的每个步骤进行操作。如何解决这个问题?
【问题讨论】:
-
你安装MySQLdb了吗? pip install mysqlclient
-
您需要显示您的数据库设置。
-
请注意
mysql-client和mysqlclient是两个不同的东西。