2012-03-13 9 views
0

編集 - 質問が正しく調査されませんでした。問題は、地図が私がそれと思ったURLと照合されていないことが判明した。web.pyはどのようにURLマッピングを処理しますか?

私は基本的にメカニズムがどのように動作するかを理解しています:奇数番号のエントリは正規表現として扱われ、^$で自動的にカプセル化されます。私が誰かが説明できることを望んでいるのは、複数のパターンが一致したときにweb.pyがどのエントリを使用するかを選択する方法です。

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

は、私が最初に一致し、indexを選択するweb.pyを期待するが、代わりにそれはdetailsを選択:

例えば、我々はこのマッピングに対してURL /にマッチしたとしましょう。どうして?最後のマッチを探すか?または最も特定の試合ですか?それが特異性なら、それはどのように決定され、文字列の長さですか?それとも予測できないのですか?

+0

"詳細" を選択する必要があります私のために。また、コンストラクタで特定のソースコード 'https:// github.com/webpy/webpy/blob/master/web/application.py'と' handle'、 '_match'関数を見てみると最初の試合でループを止めるために...だから...あなたは狂っているはずです – Doboy

+0

私は自分のコードをよく見て、問題はこの質問とは関係がないことに気付きました。サーバーはスクリプトを渡していますREQUEST_URIが間違っています。しかし、web.pyのアプローチをクリアしてくれてありがとう。 –

答えて

0

正規表現が一致し、最初の一致が選択されます。ここで「*」は何かを意味するもので、何も意味しません。詳細については、正規表現の構文を参照してください。あなたはそれを与える場合:

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

をそれは最初に選択しなければならない - については、 "インデックス"

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

を、インデックスを拾うように思わ

関連する問題