在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ tornado服務(wù)如何獲取服務(wù)提供的所有鏈接和對應(yīng)的post、get、delet

tornado服務(wù)如何獲取服務(wù)提供的所有鏈接和對應(yīng)的post、get、delete方法

我有個tornado服務(wù),我希望調(diào)用tornado的某個方法能獲取當(dāng)前服務(wù)提供的所有動態(tài)鏈接和對應(yīng)的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 對應(yīng)有g(shù)et和post方法

謝謝??!

回答
編輯回答
逗婦惱

具體不展開詳細(xì)寫了, 跑一下下面的代碼片段就明白怎么做了 (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這個類的源碼, 肯定能找到方法的

2017年3月19日 09:32