Djange 的路由層 URLconf

2022-08-01 10:18:12 字數 2792 閱讀 1590

url配置(urlconf)就像django 所支撐**的目錄。它的本質是url與要為該url呼叫的檢視函式之間的對映表;你就是以這種方式告訴django,對於客戶端發來的某個url呼叫哪一段邏輯**對應執行

-簡單的路由配置

1

from django.conf.urls import

url2

3from . import

views

45 urlpatterns =[

6 url(r'

^articles/2003/$

', views.special_case_2003),

7 url(r'

^articles/([0-9])/$

', views.year_archive),

8 url(r'

^articles/([0-9])/([0-9])/$

', views.month_archive),

9 url(r'

^articles/([0-9])/([0-9])/([0-9]+)/$

', views.article_detail),

10 ]

-有名分組

上面的示例使用簡單的、沒有命名的正規表示式組(通過圓括號)來捕獲url 中的值並以位置 引數傳遞給檢視。在更高階的用法中,可以使用命名的正規表示式組來捕獲url 中的值並以關鍵字 引數傳遞給檢視。

在python 正規表示式中,命名正規表示式組的語法是(?ppattern),其中name是組的名稱,pattern是要匹配的模式。

1

from django.conf.urls import

url2

3from . import

views

45 urlpatterns =[

6 url(r'

^articles/2003/$

', views.special_case_2003),

7 url(r'

^articles/(?p[0-9])/$

', views.year_archive),

8 url(r'

^articles/(?p[0-9])/(?p[0-9])/$

', views.month_archive),

9 url(r'

^articles/(?p[0-9])/(?p[0-9])/(?p[0-9])/$

', views.article_detail),

10 ]

-分發

'''

at any point, your urlpatterns can 「include」 other urlconf modules. this

essentially 「roots」 a set of urls below other ones.

including another urlconf

1. add an import: from blog import urls as blog_urls

2. add a url to urlpatterns: url(r'^blog/', include(blog.urls))

'''from django.conf.urls import

include, url

urlpatterns =[

url(r

'^admin/

', admin.site.urls),

url(r

'^blog/

', include('

blog.urls

')),

]

-反向解析:

在使用django 專案時,乙個常見的需求是獲得url 的最終形式,以用於嵌入到生成的內容中(檢視中和顯示給使用者的url等)或者用於處理伺服器端的導航(重定向等)。人們強烈希望不要硬編碼這些url(費力、不可擴充套件且容易產生錯誤)或者設計一種與urlconf 毫不相關的專門的url 生成機制,因為這樣容易導致一定程度上產生過期的url。

---urls.py

1

from django.conf.urls import

url2

3from . import

views

45 urlpatterns =[6#

...7 url(r'

^articles/([0-9])/$

', views.year_archive, name='

news-year-archive'),

8#...9 ]

---在模板中

1

"">2012 archive

23

---在python中

同redirect("/path/")

Django的路由層

一 簡單的路由配置 from django.conf.urls import urlviews urlpatterns path views.index 二 有名分組 先欠著三 分發 from django.conf.urls import include,url urlpatterns url r...

Django的日常 路由層

目錄反向解析 路由的分發 我們之前已經接觸過路由層,只是我們可能不知道他叫這個名字,實際上在django裡面路由層指的就是urls.py這個檔案.路由的概念是什麼,我們平時生活中接觸最多的和路由有關的大概就是路由器了,那麼路由器是幹嘛的?路由器是連線多個網路的硬體裝置,在網路之間起到閘道器的作用,可...

IP層路由決策

ip層路由決策一般由路由守護程式來實現,通常這是乙個使用者程序 路由守護程式大約每30秒就更新一次路由表,當收到icmp重定向時,路由表也會被更新 ip選路原理 1.搜尋匹配的主機位址 2.搜尋匹配的網路位址 3.搜尋預設表項 預設表項一般被設定為乙個網路表項,其網路號為0 路由表 用netstat...