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