反向解析理解

2022-09-24 03:39:12 字數 1196 閱讀 7635

反向解析在路由中先定義好  url(r"book/edit/", views.book_edit, name="book_edit") 起乙個別名,

然後在頁面中 

在頁面**執行的時候 會對這個  在路由中進行匹配,

這時是可以匹配到的,

但是在url(r"book/edit/(?p(\d+))", views.book_edit, name="book_edit")加上了乙個正則引數的話

在頁面中 的匹配不到的,還是因為它要去路由中去找 有沒有和這個反向匹配的,發現沒有就報錯 

reverse for 'book_edit' with no arguments not found. 1 pattern(s) tried: ['book/edit/(?p\\d+)/']   

未找到任何引數的「book_edit」反向。 嘗試了 1 種模式:['book/edit/(?p\\d+)/'] 

於是在頁面中需要新增    給它新增乙個位置引數,這樣就跟路由中的匹配到了

當在table的時候 這樣就會將 當前的id儲存下來,url=/book_edit/1    當點選編輯的時候 就會到url=/book_edit/1的路由中,url(r"book/edit/", views.book_edit, name="book_edit") 

在後端的反向

url(r'^haha/', views.haha, name="hahaha"),

url(r'^hehehaha/(\d+)/', views.hehe, name="hehehe")

def haha(request):

if request.method == 'get':

ret = reverse('hehehe',args=((1,)))#在這裡就解析 得到/hehe/1

return redirect(ret)

def hehe(request,id):

return render(request,"haha.html",locals())

在後端使用reverse 同樣也是到路由中去匹配 有沒有對應的路由,沒有還是會報 reverse for 'hehehe' with no arguments not found. 1 pattern(s) tried: ['hehehaha/(\\d+)/']

這裡的好處就是只需要改路由的url 頁面上的不用修改,

url 反向解析

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

django 反向解析

反向解析 當某乙個url配置的位址發生變化時,頁面上使用反向解析生成位址的位置不需要發生變化。比如 我們在檢視函式中定義的index檢視函式為如下 def index request return render request,booktest index.html 我們的urls.py路由檔案定義...

django url反向解析

引子 天冷,依舊是複習 html 首頁反向解析 反向解析 view def test request 反向解析 param request return 實際反向解析就是調取了 reverse from django.urls import reverse 實際上就會 到url 根據reverse ...