3

我是 SqlAlchemy 的新手。我们主要使用 Flask,但在特定情况下,我需要手动连接数据库。所以我启动了一个新的数据库连接,如下所示:

write_engine = create_engine("mysql://user:pass@localhost/db?charset=utf8")
write_session = scoped_session(sessionmaker(autocommit=False,
    autoflush=False,bind=write_engine))

nlabel = write_session.query(Label).filter(Label.id==label.id).first() # Works
#Later in code
ms = Message("Some message")
write_session.add(ms) # Works fine
write_session.commit() # Errors out

错误看起来像“AttributeError:'SessionMaker'对象没有属性'_model_changes'”

我究竟做错了什么?

4

2 回答 2

3

文档中我认为您可能缺少 Session 对象的初始化。

尝试:

Session = scoped_session(sessionmaker(autocommit=False, autoflush=False,bind=write_engine))
write_session = Session()

这是在黑暗中的一枪——我对 SQLAlchemy 并不十分熟悉。祝你好运!

于 2012-10-29T17:05:42.397 回答
2

您的问题是您缺少这一行:

db_session._model_changes = {}
于 2014-05-13T21:10:47.920 回答