【问题标题】:How to change the database on the fly in python using TurboGear framework?如何使用 TurboGear 框架在 python 中动态更改数据库?
【发布时间】:2012-05-08 08:42:11
【问题描述】:

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

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

【问题讨论】:

    标签: mongodb python-3.x turbogears2


    【解决方案1】:

    对于 SQLAlchemy,您可以使用更智能的 Session 实现类似的目标。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 2011-12-19
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      • 2018-02-20
      相关资源
      最近更新 更多