如何在twisted.web(或twisted.web2)中添加钩子?

时间:2009-06-29 13:27:29

标签: python callback hook twisted

如何在twisted.web上处理请求之前和之后添加一个钩子(twisted.web2也可以)?相当于webpy:

app = web.application(urls, globals())
app.add_processor(web.loadhook(my_attach_callback))
app.add_processor(web.unloadhook(my_detach_callback))

谢谢!

1 个答案:

答案 0 :(得分:1)

Twisted Web允许的一种方法是在资源层次结构中插入额外的资源,其唯一目的是运行自定义挂钩,而不是像资源那样实际处理请求URL的一部分。

您可以在twisted/web/_auth/wrapper.py中找到实现HTTPAuthSessionWrapper资源(在twisted.web.guard中公开公开)的此方法的实现。请注意getChildWithDefault的第一行,它确保资源不会占用其中一个请求段。这允许它位于资源层次结构中,修改行为,但不会改变URL的分派方式。