0

更新しました:

Werkzeugリンク テキストチュートリアルを実行すると、推奨されている create_session() の代わりに sessionmaker() を使用して SQLAlchemy セッションを作成するスタックが得られました。

注: これは SA に関するものではなく、Werkzeug に関するものです。

Werkzeug チュートリアル:

session = scoped_session(lambda: create_session(bind=application.database_engine,
    autoflush=True, autocommit=False), local_manager.get_ident)

sessionmaker() を使用して同じことを達成する方法を尋ねました。

その結果、#pocoo RCI の人たちが私を助けてくれました。

session = scoped_session(lambda: sessionmaker(bind=application.database_engine)(),
    local_manager.get_ident)

sessionmaker (**args) の最後に () がないと、エラーが発生し続けました:

RuntimeError: アプリケーションにバインドされたオブジェクトがありません

PSラムダを削除すると機能しません。

4

1 に答える 1

4

sessionmaker()セッション自体ではなく、セッションファクトリを返します。scoped_session()引数としてセッションファクトリを取ります。したがって、を省略してlambda:、の結果をsessionmaker()直接に渡しscoped_session()ます。

于 2009-09-18T14:30:57.917 に答える