我是 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/