Python 有没有办法在tornado web服务器内部打印已配置的路由处理程序?
给定以下(示例)处理程序(取自): 有没有一种方法可以在单独的页面上以编程方式打印处理程序?我的想法大致如下:Python 有没有办法在tornado web服务器内部打印已配置的路由处理程序?,python,tornado,Python,Tornado,给定以下(示例)处理程序(取自): 有没有一种方法可以在单独的页面上以编程方式打印处理程序?我的想法大致如下: handlers = [ (r"/", MainHandler), (r"/auth/login", AuthLoginHandler), (r"/auth/logout", AuthLogoutHandler), (r"/routes", RoutePrinter), ]
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))
这让我
[(,[,,,,,,,,,,,,,])]
我尝试了一些不同的访问器,但没有真正的帮助。是否可以生成我的路线列表
编辑
在进一步搜索的基础上,我找到了从这些regex对象打印模式/标志的方法。问题是,我很难理解如何取消它们的测试,因为它不像self.application.handlers[0][0]
和self.application.handlers[1][0]
那样直观。第二个是“超出范围”,尽管它看起来应该是“/auth/login”
我错过了什么?这个呢
[handler.regex.pattern for handler in self.application.handlers[0][1]]
如果还需要处理程序类的名称:
[(handler.regex.pattern, handler.handler_class) for handler in self.application.handlers[0][1]]
自从路由配置增强后,这似乎在Tornado 4.5+中不起作用。
[(handler.regex.pattern, handler.handler_class) for handler in self.application.handlers[0][1]]