2013-10-08 34 views
1

我試圖連接到使用燒瓶SQLAlchemy的MySQL數據庫,這是我的參數:AttributeError的:「元組」對象有沒有屬性「驅動程序名」用瓶的SQLAlchemy

SQLALCHEMY_DATABASE_URI = 'mysql://root:[email protected]/database?charset=utf8' 

但是當我去如果我改變SQLALCHEMY_DATABASE_URIsqlite:///db.sqlite,它工作正常

AttributeError: 'tuple' object has no attribute 'drivername'

:URL,我得到這個錯誤。

我錯過了什麼?

謝謝!

注:我也試過mysql+mysqldb://,沒有任何運氣。

+0

只是一個猜測:你沒有任何機會在你的URL字符串之後有一個額外的逗號,是嗎? –

+0

你是個好人! :)(你可以回答它,我會upvote和驗證答案:)) –

回答

9

這個錯誤經常出現,因爲它們是在URL字符串之後的額外逗號。所以,與其...

SQLALCHEMY_DATABASE_URI = 'mysql://root:[email protected]/database?charset=utf8' 

...你有...

SQLALCHEMY_DATABASE_URI = 'mysql://root:[email protected]/database?charset=utf8', 

多餘的逗號變成了SQLALCHEMY_DATABASE_URI與字符串作爲唯一值的元組。 SQLAlchemy將跳過試圖解析結果元組,但Flask-SQLAlchemy仍會嘗試使用「解析」結果。

這是通過刪除額外的逗號來解決的。

+0

你是對的,我從字典配置切換到對象配置,我忘了刪除一些昏迷......因此錯誤。 .. 謝謝 ! –

+0

(如果你想賺更多的積分,我有一個其他問題http://stackoverflow.com/questions/19247174/is-it-possible-to-change-template-folder-after-initialisation;))。 –

+0

您的答案解決了一個完全不同的問題,我一直在使用SQLAlchemy結果,只是意識到它的元組有助於獲得我的價值!即去myresult [0]而不是myresult – Avagut

相關問題