【问题标题】:How do I use MYSQL as the database in a Django project?如何在 Django 项目中使用 MYSQL 作为数据库?
【发布时间】: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-clientmysql-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-clientmysqlclient 是两个不同的东西。

标签: python mysql django


【解决方案1】:

这是一个愚蠢的错误...
我将mysql-clientmysqlclient 混淆了。前者是MYSQL 应用程序的一部分,而后者是python 模块。我没有安装后者。
还要注意你应该sudo apt-get install libmysqlclient-devbefore pip install mysqlclient .

【讨论】:

  • 别觉得傻,数据库空间中包的命名相当混乱。 :)
猜你喜欢
  • 2016-09-20
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 2022-12-19
  • 2017-12-31
  • 1970-01-01
相关资源
最近更新 更多