tornado服务如何获取服务提供的所有链接和对应的post、get、delete方法

我有个tornado服务,我希望调用tornado的某个方法能获取当前服务提供的所有动态链接和对应的post、get、delete方法
即:

import tornado.httpserver

import 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

回到顶部