我遇到过需要使用TurboGear框架访问Mongodb服务器中的一组数据库的要求。在那里,我需要列出数据库,并允许用户选择一个并继续前进。据我所知,TurboGear确实可以使用多个数据库,但这些数据需要事先在development.ini中指定。
有没有办法只连接到数据库服务器(或首先连接到特定数据库),然后获取数据库列表并动态选择一个?
答案 0 :(得分:1)
对于 SQLAlchemy ,您可以使用更智能的会话来实现类似的功能。
只是继承sqlalchemy.orm.Session
类并覆盖get_bind(self, mapper=None, clause=None)
方法。
每次会话必须决定使用哪个引擎并且期望返回引擎本身时,调用该方法。然后,您可以根据需要存储引擎列表并返回正确的引擎列表。
使用 Ming / MongoDB 时,可以通过继承model / session.py中的ming.Session
并覆盖ming.Session.db
属性以返回正确的数据库来实现相同的目的。