天天看點

Django之urls.py詳解

urls.py:URL分發器(路由配置檔案)

URL配置(URLconf)就像是Django所支撐網站的目錄。它的本質是URL模式以及要為該URL模式調用的視圖函數之間的映射表。你就是以這種方式告訴Django,對于這個URL調用這段代碼,對于那個URL調用那段代碼。URL的加載是從配置檔案中開始。

1、urlpatterns的兩種形式:

沒有字首的情況,使用的清單(推薦方式)

urlpatterns = [

url(r'^hello/$',views.hello)

]

有字首的情況,使用patterns方法,過時的方法

from django.conf.urls import url,patterns

from hello import views

urlpatterns = patterns(",

(r'^hello/$,views.hello),

")

或者

from django.conf.urls import patterns

urlpatterns = patterns('hello',

(r'^hello/$','views.hello'),

)

2、URL模式:

url(正規表達式,view函數,參數,别名,字首)

參數說明:

*一個正規表達式字元串。

*一個可調用對象,通常為一個視圖函數或一個指定視圖函數路徑的字元串。

*可選的要傳遞給視圖函數的預設參數(字典形式)。

*一個可選的name參數

*路徑字首

3、URL分解器,include函數:

通常一個URL分解器對應一個URL配置子產品,它可以包含多個URL模式,也可以包含多個其他URL分解器。通過這種包含結構設計,實作Django對應URL的層級解析。

URL分解器是Django實作app與項目解耦的關鍵。通常由include方法操作的URL配置子產品,最終會被解釋成為URL分解器

為什麼admin子產品引入的時候沒有使用include?

url(r'^admin/', admin.site.urls),

4、URL常見寫法示例,正規表達式

url(r'^test/\d{2}/$', views.test)

url(r'^test/(?P<id>\d{2})/$', views.test)

url(r'^test2/(?P<id>\d{2})/(?P<key>\w+)/$', views.test)

關于正規表達式的使用,可以參考<建議爬蟲實戰中的正規表達式講解>,和網上一些不錯的資料

http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html