Как добавить хуки в twisted.web (или twisted.web2)? - PullRequest
2 голосов
/ 29 июня 2009

Как добавить хук до и после обработки запроса на 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))

Спасибо! * * 1004

1 Ответ

1 голос
/ 01 ноября 2010

Один из подходов, который позволяет Twisted Web, - это вставить дополнительный ресурс в иерархию ресурсов, единственная цель которого состоит в том, чтобы запускать пользовательские хуки, а не обрабатывать сегмент URL запроса, как это обычно делают ресурсы.

Вы можете найти реализацию этого подхода в twisted / web / _auth / wrapper.py , который реализует ресурс HTTPAuthSessionWrapper (публично представлен в twisted.web.guard). Обратите внимание на первую строку getChildWithDefault, которая гарантирует, что ресурс не использует один из сегментов запроса. Это позволяет ему находиться в иерархии ресурсов, изменять поведение, но не изменять каким-либо образом способ отправки URL-адресов.

...