Django 的默认数据库是 SQLite,但我想使用 MySQL。由于 Python3.x 不支持 MYSQLdb 模块,Django 官方文档建议使用 mysqlclient 和 MySQL Connector/Python 代替。以下为原始文档:
MySQL 有几个实现了 PEP 249 中描述的 Python 数据库 API 的驱动程序: • mysqlclient 是一个本地驱动程序,它是推荐的选择。 • MySQL Connector/Python 是来自 Oracle 的纯 Python 驱动程序,不需要 MySQL 客户端库或任何 Python 标准库之外的 Python 模块。 这些驱动程序是线程安全的,并提供连接池。除了一个 DB API 驱动程序,Django 还需要一个适配器来访问其 ORM 中的数据库驱动程序。Django 为 mysqlclient 提供了适配器,而 MySQL Connector/Python 则包含了自己的适配器。
我已经获得了最新版本的mysql-client和mysql-connector-python,但在执行 migrate 命令时出现了错误。以下是部分消息:
Unhandled exception in thread started by .wrapper at 0x7f2112e99d90> Traceback (most recent call last): File "/home/lothakim/anaconda3/envs/py36/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 15, in
import MySQLdb as Database ModuleNotFoundError: No module named 'MySQLdb' django.
.........
core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
看起来是数据库连接的问题。但我遵循了官方教程的每一个步骤。如何解决这个问题?
MySQL 有几个实现了 PEP 249 中描述的 Python 数据库 API 的驱动程序: • mysqlclient 是一个本地驱动程序,它是推荐的选择。 • MySQL Connector/Python 是来自 Oracle 的纯 Python 驱动程序,不需要 MySQL 客户端库或任何 Python 标准库之外的 Python 模块。 这些驱动程序是线程安全的,并提供连接池。除了一个 DB API 驱动程序,Django 还需要一个适配器来访问其 ORM 中的数据库驱动程序。Django 为 mysqlclient 提供了适配器,而 MySQL Connector/Python 则包含了自己的适配器。
我已经获得了最新版本的mysql-client和mysql-connector-python,但在执行 migrate 命令时出现了错误。以下是部分消息:
Unhandled exception in thread started by .wrapper at 0x7f2112e99d90> Traceback (most recent call last): File "/home/lothakim/anaconda3/envs/py36/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 15, in
import MySQLdb as Database ModuleNotFoundError: No module named 'MySQLdb' django.
.........
core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
看起来是数据库连接的问题。但我遵循了官方教程的每一个步骤。如何解决这个问题?
mysql-client
和mysqlclient
是两个不同的东西。 - Burhan Khalid