1. 程式人生 > >Django -- url中的引數介紹

Django -- url中的引數介紹

參考文件直達

url()函式傳遞四個引數,兩個必選引數:regex和view,兩個可選引數:kwargs和name。 在這裡,值得重新審視這些引數

url()引數:regex
術語“regex”是一種常用的縮寫,意思是“正則表示式”,它是用於匹配字串中的模式的語法,換言之,在這裡是匹配url。 Django從第一個正則表示式開始,在列表中自上而下匹配,將請求的URL與每個正則表示式進行比較,直到找到匹配的一個。

請注意,這些正則表示式不搜尋GET和POST引數或域名。 例如,在https://www.example.com/myapp/的請求中,URLconf將查詢myapp/。 在https://www.example.com/myapp/?page=3的請求中,URLconf仍將查詢myapp/。

如果你需要正則表示式的幫助,請參閱維基百科的詳細解釋和re模組的文件。 此外,由Jeffrey Friedl撰寫的O’Reilly書“精通正則表示式”非常棒。 但實際上,你不需要成為正則表示式的專家,因為你只需要知道如何捕獲簡單的規則。 實際上,複雜的正則表示式的查詢效能可能很差,所以你可能不應該依靠正則表示式的全部功能。

最後,一個性能提示:這些正則表示式是第一次載入URLconf模組時被編譯。 它們超級快(只要查詢不是太複雜,如上所述)。

url()引數:view
當Django發現正則表示式匹配時,Django將呼叫指定的檢視函式,使用HttpRequest物件作為第一個引數,並將正則表示式中的任何“捕獲”值作為其他引數。 如果正則表示式使用簡單的捕獲,則值作為位置引數傳遞;如果它使用命名捕獲,則值作為關鍵字引數傳遞。 我們稍後會給出一個例子。

url()引數:kwargs
任意關鍵詞引數可以在字典中傳遞到目標檢視。

url()引數:name
命名你的URL可讓你從Django其他地方明確地引用它,特別是在模板中。 這個強大的功能允許你在僅接觸單個檔案的情況下對專案的URL模式進行全域性更改. 比如在重定向的時候,可能會用到這個name引數。