是否可以在python金字塔间使用数据库连接?



我将为我的应用程序准备一个跟踪系统,并检查每个请求是否在查询参数中具有特殊值。为了做到这一点,我创建了一个补间,这个补间检查这个特殊的值,并尝试更新一个特定的对象。在渐变中,一切看起来都没问题,但当我在视图中检查相同的值时,对象看起来没有更新。是否有可能保存此更新?

def tracking_tween_factory(handler, registry):
def tracking_tween(request):
special_token = request.params.get('special_token')
special_object = request.params.get('special_token')
if special_token:
request.dbsession.execute(
f"update {data['special_object']} set clicked = true where id = {data['special_token']}")
# here was only for testing purposes just to check if this works
tracked_object = request.dbsession.execute(
f"select * from {data['special_object']} where id = {data['special_token']}").fetchall()
assert tracked_object[0].clicked is True  # value which should change
return handler(request)
return tracking_tween

Python 3.8框架金字塔

好了,我找到解决办法了。

我必须在pyramid_tm_tween之后设置我的渐变。

所以例如:

config.add_tween('coma.tweens.tracking_tween_factory', under='pyramid_tm.tm_tween_factory')

在我的初始化文件中用于金字塔配置。

最新更新