【问题标题】:What is the mean about "mysql+pymysql" in flask烧瓶中的“mysql + pymysql”是什么意思
【发布时间】:2020-08-21 16:57:52
【问题描述】:

我想在flask中使用MySQL,一个配置是

app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://user:password@127.0.0.1:3306/db"

如果我使用mysql+pymysql,它可以工作

但是当我只使用mysql时,错误信息是这样的

Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

但在我的代码中,我没有导入pymysql,那么pymysql 是什么以及为什么需要使用它才能工作

我知道pymysql 是一个moudle

感谢您的回复!

【问题讨论】:

  • 请说明您使用的是哪个数据库客户端?

标签: python mysql sqlalchemy


【解决方案1】:

The create_engine function(使用配置中给出的 URL),需要你给它一个“方言”。 A "dialect" is the name of the underlying database engine SQLAlchemy 正在连接。

但是,由于许多数据库有多个不同的客户端(在 Python 中这些客户端实现 DBAPI),因此在许多情况下 (such as for the mysql dialect),您需要提供您希望 SQLAlchemy 使用的客户端的名称。在这种情况下,您要求它使用 pymysql 库来实际处理与 MySQL 的连接。

SQLAlchemy 1.3 支持以下方言/DBAPI 库来连接 MySQL:

  • mysqlclient(MySQL-Python 的维护分支)
  • PyMySQL
  • MySQL 连接器/Python
  • CyMySQL
  • 我们的SQL
  • 谷歌云 SQL
  • PyODBC
  • 用于 Jython 的 zxjdbc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-01
    • 2023-03-23
    • 1970-01-01
    • 2017-12-19
    • 2011-08-12
    • 2017-06-11
    • 2018-03-05
    • 2023-03-27
    相关资源
    最近更新 更多