【发布时间】:2016-04-15 04:42:33
【问题描述】:
如何将代码添加到在视图中的代码之后执行的金字塔应用程序?
我需要在查看代码之前和之后对我的烧杯会话做一些事情。之前没问题,我用的是@subscriber(NewRequest)。到目前为止,我尝试的所有方法似乎都发生得太晚了(我写入会话的值似乎没有被保存,尽管代码已执行,正如我在日志中看到的那样)。
我尝试将其放入@subscriber(BeforeRender)、@subscriber(NewResponse),并在完成的回调中添加NewRequest:event.request.add_finished_callback(finished_callback)——我没有写入会话中的任何值。只有我作为视图处理程序中最后一行添加的那一行(但我不会在我的所有视图中都写那一行)。
pyramid docs on NewResponse 状态:
在 WSGI 中间件组件中处理响应的后处理通常比在由 pyramid.interfaces.INewResponse 事件调用的订阅者代码中处理得更好。 [...]
但我对此感到迷茫,因为我不太了解 wsgi,并且试图通过谷歌找到一个进入的地点并没有指向我的任何地方。
【问题讨论】:
-
刚刚发现
BeforeRender确实有效 - 如果呈现某些内容,则重定向不是这种情况。
标签: python session pyramid wsgi