webapp2路由中的非贪心匹配?

时间:2013-05-19 21:34:18

标签: python webapp2

我正在使用的Python应用程序中有两条路由,而且我似乎无法使匹配工作正常。路线如下:

webapp2.Route('/(.*?)/(.*?)', grouploader.Loader),
webapp2.Route(r'/edit/(.*?)/(.*?)', handler='grouploader.Editor'),

我希望像/a/b这样的网址转到第一个网址,/edit/a/b转到第二个网址。显然这里的比赛是贪婪的,因为第一条规则总是匹配,为这两个值返回"edit/a""b"。有没有办法让这项工作,或者我在咆哮错误的树?

1 个答案:

答案 0 :(得分:1)

反转路线,不要使用延迟匹配,你还有另一个更好的工具:

webapp2.Route('/edit/([^/]+)/([^/]+)', handler = 'grouploader.Editor');
webapp2.Route('/([^/]+)/([^/]+)', grouploader.Loader);