反向解析

? ? ? ?隨著功能的增加會(huì)出現(xiàn)更多的視圖,可能之前配置的正則表達(dá)式不夠準(zhǔn)確,于是就要修改正則表達(dá)式,但是正則表達(dá)式一旦修改了,之前所有對(duì)應(yīng)的超鏈接都要修改,真是一件麻煩的事情,而且可能還會(huì)漏掉一些超鏈接忘記修改,有辦法讓鏈接根據(jù)正則表達(dá)式動(dòng)態(tài)生成嗎? 答:反向解析。

定義方法:

1 .?在url中為?include?定義namespace屬性,并賦值

2 .?在應(yīng)用的url中定義?name?屬性,并賦值

使用方法:

1 .?在模板中使用

?url za標(biāo)簽做超鏈接,?此處為 {%? url? 'namespace值:name值'? %}? ? 此處url會(huì)自動(dòng)渲染成正則匹配的url(即動(dòng)態(tài)url)

2 .?視圖重定向中使用

return redirect(reverse('namespace值:name值'))

總結(jié):在定義url時(shí),需要為include定義namespace屬性,為url定義name屬性,使用時(shí),在模板中使用url標(biāo)簽,在視圖中使用reverse函數(shù),根據(jù)正則表達(dá)式動(dòng)態(tài)生成地址,減輕后期維護(hù)成本。

URL的參數(shù)

情況一:位置參數(shù)

1)在booktest/urls.py中,修改fan2如下:

url(r'^fan(\d+)_(\d+)/$', views.fan3,name='fan2'),

2)在booktest/views中,定義視圖fan3如下:

def fan3(request, a, b):

return HttpResponse(a+b)

3)修改templates/booktest/fan1.html文件如下:

反向解析

普通鏈接:fan2


反向解析:fan2

使用重定向傳遞位置參數(shù)格式如下:

return redirect(reverse('booktest:fan2', args=(2,3)))

情況二:關(guān)鍵字參數(shù)

1)在booktest/urls.py中,修改fan2如下:

url(r'^fan(?P\d+)_(?P\d+)/$', views.fan4,name='fan2'),

2)在booktest/views中,定義視圖fan4如下:

def fan4(request, id, age):

return HttpResponse(id+age)

2)修改templates/booktest/fan1.html文件如下:

反向解析

普通鏈接:fan2


反向解析:fan2

使用重定向傳遞關(guān)鍵字參數(shù)格式如下:

return redirect(reverse('booktest:fan2', kwargs={'id':100,'age':18}))
















使用重定向傳遞位置參數(shù)格式如下:

return redirect(reverse('booktest:fan2', args=(2,3)))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1,定義: 隨著功能的增加會(huì)出現(xiàn)更多的視圖,可能之前配置的正則表達(dá)式不夠準(zhǔn)確,于是就要修改正則表達(dá)式,但是正則表達(dá)...
    曉可加油閱讀 740評(píng)論 2 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • 已經(jīng)同步到gitbook,想閱讀的請(qǐng)轉(zhuǎn)到gitbook: Django 1.10 中文文檔 URL dispatc...
    leyu閱讀 14,417評(píng)論 0 16
  • 前言 在Ubuntu上搭建Hbase集群后,用hbase shell命令可以正常訪問集群;但是,在本地用java客...
    收納僧閱讀 2,304評(píng)論 0 1
  • 在django項(xiàng)目開發(fā)中,最常見的一個(gè)需求是獲得url的最終形式,以用于嵌入到生成的內(nèi)容中或者是views中,或者...
    asdfasdgwe閱讀 893評(píng)論 0 0

友情鏈接更多精彩內(nèi)容