如何在处理 twisted.web(twisted.web2 也可以)上的请求之前和之后添加钩子(Hook)?相当于 webpy 的:
app = web.application(urls, globals())
app.add_processor(web.loadhook(my_attach_callback))
app.add_processor(web.unloadhook(my_detach_callback))
谢谢!
请您参考如下方法:
Twisted Web 允许的一种方法是在资源层次结构中插入一个额外的资源,其唯一目的是运行您的自定义 Hook ,而不是像资源通常那样实际处理请求 URL 的一部分。
您可以在 twisted/web/_auth/wrapper.py 中找到此方法的实现它实现了 HTTPAuthSessionWrapper 资源(在 twisted.web.guard 中公开)。请注意 getChildWithDefault 的第一行,它确保资源不会消耗其中一个请求段。这允许它位于资源层次结构中,修改行为,但不会以其他方式改变 URL 的分派(dispatch)方式。
