AttributeError:'tuple'对象没有使用Flask SqlAlchemy属性'drivername'

Cyr*_* N. 1 python mysql sqlalchemy flask flask-sqlalchemy

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

SQLALCHEMY_DATABASE_URI = 'mysql://root:pass@127.0.0.1/database?charset=utf8'
Run Code Online (Sandbox Code Playgroud)

但是当我转到网址时,我收到此错误:

AttributeError:'tuple'对象没有属性'drivername'

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

我错过了什么?

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

Mar*_*eth 10

这个错误经常出现,因为它们是URL字符串后面的额外逗号.所以,而不是......

SQLALCHEMY_DATABASE_URI = 'mysql://root:pass@127.0.0.1/database?charset=utf8'
Run Code Online (Sandbox Code Playgroud)

...你有...

SQLALCHEMY_DATABASE_URI = 'mysql://root:pass@127.0.0.1/database?charset=utf8',
Run Code Online (Sandbox Code Playgroud)

额外的逗号将SQLALCHEMY_DATABASE_URI转换为元组,并将字符串作为唯一值.SQLAlchemy将跳过尝试解析生成的元组,但Flask-SQLAlchemy仍将尝试使用"已解析"结果.

通过删除额外的逗号来解决此问题.