如何使用TurboGear框架在python中动态更改数据库?

时间:2012-05-08 08:42:12

标签: mongodb python-3.x turbogears2

我遇到过需要使用TurboGear框架访问Mongodb服务器中的一组数据库的要求。在那里,我需要列出数据库,并允许用户选择一个并继续前进。据我所知,TurboGear确实可以使用多个数据库,但这些数据需要事先在development.ini中指定。

有没有办法只连接到数据库服务器(或首先连接到特定数据库),然后获取数据库列表并动态选择一个?

1 个答案:

答案 0 :(得分:1)

对于 SQLAlchemy ,您可以使用更智能的会话来实现类似的功能。

只是继承sqlalchemy.orm.Session类并覆盖get_bind(self, mapper=None, clause=None)方法。 每次会话必须决定使用哪个引擎并且期望返回引擎本身时,调用该方法。然后,您可以根据需要存储引擎列表并返回正确的引擎列表。

使用 Ming / MongoDB 时,可以通过继承model / session.py中的ming.Session并覆盖ming.Session.db属性以返回正确的数据库来实现相同的目的。