2013-05-19 63 views
0

我在一個Python應用程序中有兩條路線,而我似乎無法正確匹配工作。該路線是這樣的:webapp2路由中的非貪婪匹配?

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

我想對於像/a/b網址去第一和/edit/a/b去第二次。顯然這裏的比賽是貪婪的,因爲第一條規則總是匹配,所以這兩個值返回"edit/a""b"。有沒有辦法讓這項工作,或者我吠叫錯誤的樹?

回答

1

反轉的路線,並且不使用懶惰匹配,你有另一個更好的工具:

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

導致404對兩個URL。 – timwoj

+0

你確定沒有尾隨斜線嗎?正則表達式匹配,這是肯定的 – fge

+0

從GAE日誌:INFO 2013-05-19 23:26:58,187 server.py:585]默認:「GET /編輯/ a/b HTTP/1.1」404 154 – timwoj