2024-05-12 20:31:14 发布
网友
我正试图找出如何实现一个最多有3个(可选)URL参数的URL。
我在ASP.NET MVC 3中找到了如何做到这一点的方法,但是当前项目的限制消除了它。所以,我要找的是:
base/{param1}/{param2}/{param3}其中param2和param3是可选的。这只是handlers部分中的正则表达式模式吗?
base/{param1}/{param2}/{param3}
handlers
我不确定是否有一种很好的方法,但这应该是可行的:
import tornado.web import tornado.httpserver class TestParamsHandler(tornado.web.RequestHandler): def get(self, param1, param2, param3): param2 = param2 if param2 else 'default2' param3 = param3 if param3 else 'default3' self.write( { 'param1': param1, 'param2': param2, 'param3': param3 } ) # My initial answer is above, but I think the following is better. class TestParamsHandler2(tornado.web.RequestHandler): def get(self, **params): self.write(params) application = tornado.web.Application([ (r"/test1/(?P<param1>[^\/]+)/?(?P<param2>[^\/]+)?/?(?P<param3>[^\/]+)?", TestParamsHandler), (r"/test2/(?P<param1>[^\/]+)/?(?P<param2>[^\/]+)?/?(?P<param3>[^\/]+)?", TestParamsHandler2) ]) http_server = tornado.httpserver.HTTPServer(application) http_server.listen(8080) tornado.ioloop.IOLoop.instance().start()
我不确定是否有一种很好的方法,但这应该是可行的:
相关问题 更多 >
编程相关推荐