如何在金字塔应用程序启动时从数据库中读取表



我有一个pyramid游戏服务器应用程序,它使用sqlalchemy读取/写入postgres数据库。我想在创建此应用程序时从数据库中读取某个表(称为games(。这个games数据将由我的一个wsgi middleware使用,它挂在应用程序中,用于发送statsd度量。为此,我在应用程序的主要功能中添加了一个订阅者,如:

config.add_subscriber(init_mw_data, ApplicationCreated)

现在,我想读取以下函数中的games表:

def init_mw_data(event):
...
...

有人知道我如何在函数init_mw_data中读取games表吗?

它基于您如何配置应用程序。来自pyramid-cookiecutter-starter的默认sqlalchemy模板具有dbsession_factory

所以,你可以这样做:

def init_mw_data(event):
registry = event.app.registry
dbsession = registry['dbsession_factory']()
dbsession.query(...)
...

最新更新