我是 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' object has no attribute '_model_changes'”

我究竟做错了什么?

最佳答案

the documentation 我想你可能错过了 Session 对象的初始化。

尝试:

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

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

关于sqlalchemy: session 提交错误 - 'SessionMaker' 对象没有属性 '_model_changes',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12462638/

10-12 19:03