有無名分組及路由分發

2022-10-04 03:36:09 字數 2574 閱讀 7913

該圖是我們學習的django的流程 也是後期複習django重要的手段(如下圖)
url(正規表示式,函式或者型別位址)

路由匹配的原則:從上往下正規表示式能夠匹配到內容就算匹配成功會立刻執行後面的檢視函式並且結束整個路由匹配過程,乙個檢視函式可以對應多個路由,乙個路由只對應乙個檢視函式

優化操作在路由匹配環節如果第一次都沒有匹配上django會在路徑後面加斜槓再次匹配

urlpatterns = [

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

# 首頁

url(r'^$',views.home),

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

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

# 404頁面

url(r'',views.error)

]

# 無名分組

url(r'^test/([0-9])/',views.test) # test(request,1234)

"""在路由匹配如果將某部分正則使用括號括起來了 那麼該部分正則匹配到的內容會當做位置引數傳遞給後面的檢視函式"""

# 有名分組,year為分組名

url(r'^testadd/(?p[0-9])',views.testadd)

# testadd(request,year=1234)

"""在路由匹配如果將某部分正則使用括號括起來了 那麼該部分正則匹配到的內容會當做關鍵字引數傳遞給後面的檢視函式

"""# 能否混用?

不能混用

url(r'^index/(\d+)/(?p\d+)/',views.index)

# 單個情況下可以重複使用

url(r'^index/(\d+)/(\d+)/(\d+)/',views.index)

url(r'^index/(?p\d+)/(?p\d+)/',views.index)

1.在路由層書寫正則與函式名的時候 在後面加乙個唯一標識

url(r'^login/',views.login,name='my_login')

2.前端反向解析

3.後端反向解析

from django.shortcuts import reverse

_url = reverse('my_login')

"""通過標記解析出乙個結果 該結果可以訪問到標記所在的那一行位址

"""

# 無名分組的反向解析

url(r'^login/(\d+)/',views.login,name='my_login')

後端_url = reverse('my_login',args=(111,))

print(_url) # /login/111/

前端# 有名分組的反向解析

url(r'^login1/(?p\d+)/',views.login1,name='my_login1')

後端_url = reverse('my_login',kwargs=)

print(_url) # /login/123/

前端"""其實無名有名反向解析可以使用通用的方式"""

都可以使用無名分組的反向解析

當django專案特別龐大的時候 如果所有的路由匹配都寫在專案的總路由中會導致總路由過於複雜不利於維護 此時可以將路由做拆分

"""django支援所有的應用都可以擁有自己的

urls.py

templates資料夾

static資料夾

也就意味著多人協同開發變得更加的簡單了

"""總路由

from django.conf.urls import url,include

# 路由分發

子路由 from django.conf.urls import url

urlpatterns = [

url(r'^index/',views.index)

]子路由 from django.conf.urls import url

urlpatterns = [

url(r'^index/',views.index)

]# 總路由更加簡便的寫法,對應子路由還是同樣的寫法

from django.conf.urls import url,include

總路由

# 命名空間

反向解析

後端前端

"""如何不衝突

可以在起別名的時候加上應用名字首

"""

靜態頁面

資料寫死的 不怎麼改變的

偽靜態頁面

看似是檔案其實是動態網頁 這麼做事為了提高**被搜尋引擎收錄的概率

將路徑字尾改為.html形式即可

虛擬環境能夠實現針對不同的專案配備專屬的程式設計環境

虛擬環境的唯一表示是venv資料夾

無名分組和有名分組

無名分組 url r test d views.test 會將括號內匹配到的內容當做 位置引數 傳遞給後面的檢視函式test request,args 括號就是正則裡面的分組,d 是只要是數字就行,代表的是一到無窮大個,是零或者乙個,是0到無窮大個,正則預設是貪婪匹配。當加上括號的時候,就會把括號裡...

(5)路由層下分組的概念 有名分組和無名分組

分組是以位置引數往函式內傳入的 分組的用途就是通過分組的值匹配資料庫查詢資料 有名分組 給分組命名,以關鍵字引數傳過去 命名關鍵子和格式 p 這裡寫名字 有名分組 urls.py views.py 無名分組 分組時候沒有名字,是以位置引數傳入的 1 單分組 urls.py 在django內部,當使用...

路由重分發及路由優化簡析

一 重分發 1,重分發,是指乙個組織執行了多種路由協議時,必須採取方式將一種路由協議獲悉的網路告知另一路由選擇協議,以每個端點能到達其他點,這一過程就是 重分發。雖然組織中執行多種路由選擇協議,但每種內部路由協議都認為自己是as內唯一內部路由選擇協議,比如eigrp重分發到ospf中後,ospf認 ...