9

この質問からわかるように、sqliteを使用してsqlalchemyでセッションメソッドがバインドされていないのはなぜですか? セッションメーカーのクラスをインスタンス化する必要があること。

同じエラーが発生し、「修正」が機能すると思いますが、「クラスをインスタンス化する」方法がわかりません

私の設定コードは、リンクされた質問のとおりです。

この質問How to instanceiate a class in pythonから、クラスオブジェクトを呼び出す必要があることがわかります。私の誤った仮定は、次のとおりです。

session = sessionmaker(bind=engine)

行はインスタンス化です。

4

2 に答える 2

27

あなたの問題はあなたが投稿した最初の質問とまったく同じであり、解決策は同じ質問から選択された回答と同じでなければなりません。

この関数はクラスsessionmakerを返し、パラメーターで渡されたエンジンをバインドします。bind

したがって、クラスを作成した後、それをインスタンス化する必要があります(まだインスタンス化されていません)。

Session = sessionmaker(bind=engine)
# Session is a class
session = Session()
# now session is a instance of the class Session
session.execute(...)
于 2012-04-22T01:03:08.357 に答える
5

その行はSessionクラスを作成します。それでもインスタンス化する必要があります。

Session = sessionmaker(bind=engine)
session = Session()
于 2012-04-22T01:01:01.273 に答える