django在檢查url模式前,移除每乙個申請的url開頭的斜槓(/)。 這意味著我們為/hello/寫url模式不用包含斜槓(/)。(剛開始,這樣可能看起來不直觀,但這樣的要求簡化了許多任務作,如url模式內嵌,我們將在第八章談及。)
模式包含了乙個尖號(^)和乙個美元符號($)。這些都是正規表示式符號,並且有特定的含義: 上箭頭要求表示式對字串的頭部進行匹配,美元符號則要求表示式對字串的尾部進行匹配。
最好還是用範例來說明一下這個概念。 如果我們用尾部不是$的模式』^hello/』,那麼任何以/hello/開頭的url將會匹配,例如:/hello/foo 和/hello/bar,而不僅僅是/hello/。類似地,如果我們忽略了尖號(^),即』hello/$』,那麼任何以hello/結尾的url將會匹配,例如:/foo/bar/hello/。如果我們簡單使用hello/,即沒有^開頭和$結尾,那麼任何包含hello/的url將會匹配,如:/foo/hello/bar。因此,我們使用這兩個符號以確保只有/hello/匹配,不多也不少。
你大多數的url模式會以^開始、以$結束,但是擁有複雜匹配的靈活性會更好。
另外乙個重點,正規表示式字串的開頭字母「r」。 它告訴python這是個原始字串,不需要處理裡面的反斜槓**義字元)。 在普通python字串中,反斜槓用於特殊字元的轉義。比如n轉義成乙個換行符。 當你用r把它標示為乙個原始字串後,python不再視其中的反斜槓為轉義字元。也就是說,「n」是兩個字串:「」和「n」。由於反斜槓在python**和正規表示式中有衝突,因此建議你在python定義正規表示式時都使用原始字串。 從現在開始,本文所有url模式都用原始字串。
Django 路由正則URL
django 路由正則url url1 路由url r detail views.detail blank href detail nid url2 返回乙個值,d 也可以寫為w 任意正則 url r detail d html views.detail blank href detail html...
Django中url的正規表示式錯誤
warnings 2 0.w001 your url pattern name index has a route that contains p begins with a or ends with a this was likely an oversight when migrating to ...
Django基於正規表示式的URL(2)
1.關於正則的說明 url r detail d d html views.detail 當客戶端輸入 127.0.0.1 8000 detail 2 9.html時,django預設可以得到3個引數,分別是request,d d 所以定義detail函式的時候,需要把這3個引數都接收,否則會報錯。...