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' object has no attribute '_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 に答える