如何在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))
谢谢!
答案 0 :(得分:1)
Twisted Web允许的一种方法是在资源层次结构中插入额外的资源,其唯一目的是运行自定义挂钩,而不是像资源那样实际处理请求URL的一部分。
您可以在twisted/web/_auth/wrapper.py中找到实现HTTPAuthSessionWrapper资源(在twisted.web.guard中公开公开)的此方法的实现。请注意getChildWithDefault
的第一行,它确保资源不会占用其中一个请求段。这允许它位于资源层次结构中,修改行为,但不会改变URL的分派方式。