2

TurboGear フレームワークを使用して、Mongodb サーバー内の一連のデータベースにアクセスする必要があるという要件に遭遇しました。そこで、データベースを一覧表示し、ユーザーがいずれかを選択して次に進むことができるようにする必要があります。私が調べた限りでは、TurboGear は複数のデータベースを使用することを容易にしますが、それらは事前に development.ini で指定する必要があります。

dbサーバー(または最初に特定のデータベース)に接続してから、データベースのリストを取得してその場で選択する方法はありますか?

4

1 に答える 1

2

SQLAlchemyの場合、よりスマートなセッションを使用して、そのようなことを実現できます。

クラスをサブクラス化し、メソッドsqlalchemy.orm.Sessionをオーバーライドするだけです。get_bind(self, mapper=None, clause=None)このメソッドは、セッションが使用するエンジンを決定する必要があるたびに呼び出され、エンジン自体を返すことが期待されます。その後、エンジンのリストを好きな場所に保存して、正しいものを返すことができます。

Ming/MongoDBを使用する場合ming.Session、model/session.py で をサブクラス化し、ming.Session.dbプロパティをオーバーライドして適切なデータベースを返すことで、おそらく同じことが達成できます。

于 2012-05-18T10:05:55.453 に答える