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

时间:2013-10-08 12:06:48

标签: python mysql sqlalchemy flask flask-sqlalchemy

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

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

但是当我去网址时,我收到了这个错误:

  

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

如果我将SQLALCHEMY_DATABASE_URI更改为sqlite:///db.sqlite,则可以正常使用。

我错过了什么?

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

1 个答案:

答案 0 :(得分:10)

这个错误经常出现,因为它们是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仍将尝试使用“已解析”的结果。

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