0

Web.pyには、独自のデータベース API である web.db があります。代わりに SQLObject を使用することは可能ですが、これを適切に行う方法を説明しているドキュメントを見つけることができませんでした。データベース接続の管理に特に興味があります。wsgi エントリ ポイントで接続を確立し、それを再利用するのが最善です。Webpy クックブックには、SQLAlchemy でこれを行う方法の例が含まれています。SQLObject を使用して同様のことを適切に行う方法を知りたいと思います。

これは私が現在行っている方法です:

class MyPage(object):
  def GET(self):
    ConnectToDatabase()
    ....
    return render.MyPage(...)

これは、クエリごとに新しいデータベース接続を確立するため、明らかに非効率的です。もっと良い方法があると確信しています。

4

1 に答える 1

0

与えられた SQLAlchemy の例を理解する限り、プロセッサが使用されます。つまり、接続ごとにセッションが作成され、ハンドラーが完了するとコミットされます (またはエラーが発生した場合はロールバックされます)。

あなたが提案したことを行う簡単な方法、つまりWSGIエントリポイントで接続を開く方法がわかりません。同時に複数のクライアントにサービスを提供するには、おそらく接続プールが必要になるでしょう。(ただし、効率、コードの単純さなどの要件が何であるかはわかりません。コメントしてください。)

ConnectToDatabaseもちろん、各ハンドラに呼び出しを挿入するのは面倒です。SQLAlchemy セッションを SQLObject 接続に置き換えて、クックブックの例を適応させることをお勧めします。

于 2011-12-07T18:43:34.593 に答える