2012-03-13 38 views
0

編輯 - 這個問題沒有得到適當的研究。結果問題是地圖沒有與我認爲的網址匹配。web.py如何處理url映射?

我理解的機制基本工作原理是:奇數項被視爲正則表達式,它們會自動與^$封裝。我希望有人能夠解釋的是,web.py如何在多個模式匹配時選擇使用哪個條目。

例如,假設我們相匹配的網址/反對這種映射:

urls = (
    '/' , 'index', 
    '/.*' , 'details') 

我希望web.py選擇的第一場比賽,index,而是它選擇details。爲什麼?它是否會尋找最後一場比賽?或者最具體的比賽?如果它是特異性的,那麼如何確定,字符串長度?或者它是不可預測的?

+0

似乎拿起指數爲了我。我還查看了源代碼'https:// github.com/webpy/webpy/blob/master/web/application.py',具體在構造函數和'handle','_match'函數,它似乎做一個for循環停止在第一場比賽...所以...你一定是瘋了 – Doboy 2012-03-13 05:26:14

+0

我仔細看了看我的代碼,並意識到這個問題與這個問題無關:服務器傳遞腳本錯誤的REQUEST_URI。但感謝您清理web.py的方法。 – 2012-03-13 06:22:03

回答

0

它正則表達式匹配,並且第一個匹配被選中。這裏「。*」表示任何事物或沒有任何事物,因爲您可以參考正則表達式語法的細節。如果你給它:

http://the.server.name:8080/ 

應該選擇第一項 - 「指數」

爲:

http://the.server.name:8080/anything_include_space... 

,應該選擇 「詳細信息」