我正在使用的Python应用程序中有两条路由,而且我似乎无法使匹配工作正常。路线如下:
webapp2.Route('/(.*?)/(.*?)', grouploader.Loader),
webapp2.Route(r'/edit/(.*?)/(.*?)', handler='grouploader.Editor'),
我希望像/a/b
这样的网址转到第一个网址,/edit/a/b
转到第二个网址。显然这里的比赛是贪婪的,因为第一条规则总是匹配,为这两个值返回"edit/a"
和"b"
。有没有办法让这项工作,或者我在咆哮错误的树?
答案 0 :(得分:1)
反转路线,不要使用延迟匹配,你还有另一个更好的工具:
webapp2.Route('/edit/([^/]+)/([^/]+)', handler = 'grouploader.Editor');
webapp2.Route('/([^/]+)/([^/]+)', grouploader.Loader);