django路由系統

2022-08-11 04:00:24 字數 2210 閱讀 4518

偽靜態

**形態分兩種,靜態和動態,偽靜態並不是真正的靜態,實質上也是動態頁面。

動態頁面的含意就是,網頁會根據訪問者的請求,從伺服器資料庫裡篩選訪問者想要的內容顯示到訪問者的瀏覽器上,不同的人訪問同一頁面,會看到不同的內容

靜態頁面,訪問者訪問乙個頁面,會直接從伺服器把這個頁面讀出來顯示到訪問者的瀏覽器裡,不需要資料庫的支援。

偽靜態頁面,其目的是為了更好的被搜尋引擎收錄而通過一定的規則,把動態頁面的位址轉換成以htm或html結尾的位址,看起來是靜態的,實際是依然是動態頁面。

**匹配中自己新增.html。這樣訪問時網頁就會有.html

url(r'^product.html', views.product.product, name='product'),

url(r'^index/(\w+)/(\w+)/'.html, index),

url(r'^test/(?p

<

id>\w+)/(?p<

name

>\w+)/', test),

路由分發

路由配置: 路徑-->檢視函式 (哪個路徑,交給哪個函式處理)

from django.conf.urls import url, include
urlpatterns = [

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

url(r'^classes/', include('classes.urls')),

url(r'^teacher/', include('teacher.urls')),

url(r'^student/', include('student.urls')),

url(r'^login/', include('login.urls')),

url(r'',not_found)

]

檢視也就是二級路由指向具體的位置

urlpatterns =[

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

url(r'

^classes/

', views.classes),

url(r

'^cadd/

', views.cadd),

url(r

'^del_c/

', views.del_c),

url(r

'^up_c/

', views.up_c),

]

反向路由

隨著功能的增加會出現更多的檢視,可能之前配置的正規表示式不夠準確,於是就要修改正規表示式,但是正規表示式一旦修改了,之前所有對應的超連結都要修改,真是一件麻煩的事情,而且可能還會漏掉一些超連結忘記修改,有辦法讓鏈結根據正規表示式動態生成嗎? 就是用反向解析的辦法。

定義url時,需要為include定義namespace屬性,為url定義name屬性,通過這個name引數,可以反向解析url、反向url匹配、反向url查詢或者簡單的url反查。

使用時,在模板中使用url標籤,在檢視中使用reverse函式,根據正規表示式動態生成位址,減輕後期維護成本。

在需要解析url的地方,對於不同層級,django提供了不同的工具用於url反查:

使用

urlpatterns =[

#...

path('

articles//

', views.year_archive, name='

news-year-archive'),

#...

]

在前端想要使用這一條路由的時候(在前端解析)

"

">2012 archive

在後端檢視函式中使用

Django路由系統

urlpatterns path 要匹配的路徑 可以是正規表示式 檢視函式,引數,別名 1 正規表示式 乙個正規表示式字串 2 檢視函式 乙個可呼叫物件,通常為乙個檢視函式或乙個指定檢視函式路徑的字串 3 引數 要傳遞給檢視函式的預設引數 字典形式,可選 4 別名 乙個可選的name引數 1 在py...

Django路由系統

普通的url 函式 有傳遞引數的url django2以上版本,使用正規則要用re path,之前的版本使用url re path add w add 一樣功能 path add add re path r add2 p w p d add path add2 add2 路由分發 使用include...

Django路由系統

基本格式 from django.conf.urls import urlurlpatterns url 正規表示式,views檢視函式,引數,別名 引數說明 正規表示式 乙個正規表示式字串 views檢視函式 乙個可呼叫物件,通常為乙個檢視函式或乙個指定檢視函式路徑的字串 引數 可選的,要傳遞給檢...