给定以下(示例)处理程序(取自此处):
handlers = [
(r"/", MainHandler),
(r"/auth/login", AuthLoginHandler),
(r"/auth/logout", AuthLogoutHandler),
]
有没有办法以编程方式在单独的页面上打印处理程序?我在想一些事情:
handlers = [
(r"/", MainHandler),
(r"/auth/login", AuthLoginHandler),
(r"/auth/logout", AuthLogoutHandler),
(r"/routes", RoutePrinter),
]
...
class RoutePrinter(...):
def get(self):
self.write(str(self.application.routes))
这给了我
[(<_sre.SRE_Pattern object at 0x216c130>, [, , , , , , , , , , , , , , , , , , , , , , ])]
我尝试了一些不同的访问器,但并没有真正帮助。是否可以生成我的路线列表?
编辑
基于进一步的搜索,我遇到了从这些正则表达式对象打印模式/标志的方法。问题是我很难理解如何解除它们的嵌套,因为它不像self.application.handlers[0][0]
then那样直观self.application.handlers[1][0]
。第二个是“超出范围”,即使它看起来应该是“/auth/login”。
我错过了什么?