tornado服务如何获取服务提供的所有链接和对应的post、get、delete方法
我有个tornado服务,我希望调用tornado的某个方法能获取当前服务提供的所有动态链接和对应的post、get、delete方法
即:
import tornado.httpserverimport tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
class IndexHandler(tornado.web.RequestHandler):
def get(self):
greeting = self.get_argument('greeting', 'Hello')
self.write(greeting + ', friendly user!')
def post(self):
self.write('hello, friendly user!')
if __name__ == "__main__":
tornado.options.parse_command_line()
app = tornado.web.Application(handlers=[(r"/index", IndexHandler)])
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
即获得链接 /index 对应有get和post方法
谢谢!!
回答:
具体不展开详细写了, 跑一下下面的代码片段就明白怎么做了 (tornado==4.5.1)
app = tornado.web.Application(handlers=[(r"/index", IndexHandler)])for e in app.wildcard_router.rules:
print(e.matcher.__dict__["_path"])
# 在e.target.__dict__ 中查找get, post, delete方法
print(e.target.__dict__)
tornado==4.4.1, 可以用下面的方法
for h in app.handlers: for e in h[1]:
print(e._path, e.handler_class)
自己看一下Application这个类的源码, 肯定能找到方法的
以上是 tornado服务如何获取服务提供的所有链接和对应的post、get、delete方法 的全部内容, 来源链接: utcz.com/a/158724.html