4

我正在尝试使用 Flask-SqlAlchemy 连接到 MySQL 数据库,这是我的参数:

SQLALCHEMY_DATABASE_URI = 'mysql://root:pass@127.0.0.1/database?charset=utf8'

但是当我转到 url 时,我得到了这个错误:

AttributeError:“元组”对象没有属性“驱动程序名”

如果我将 更改SQLALCHEMY_DATABASE_URIsqlite:///db.sqlite,它可以正常工作。

我错过了什么?

注意:我也试过mysql+mysqldb://了,没有任何运气。

4

1 回答 1

18

由于 URL 字符串后面有一个额外的逗号,因此经常出现此错误。所以,而不是...

SQLALCHEMY_DATABASE_URI = 'mysql://root:pass@127.0.0.1/database?charset=utf8'

...你有...

SQLALCHEMY_DATABASE_URI = 'mysql://root:pass@127.0.0.1/database?charset=utf8',

额外的逗号将 SQLALCHEMY_DATABASE_URI 转换为以字符串为唯一值的元组。SQLAlchemy 将跳过尝试解析结果元组,但 Flask-SQLAlchemy 仍将尝试使用“解析”的结果。

这可以通过删除多余的逗号来解决。

于 2013-10-08T12:58:53.043 回答