1學(xué)完前面的知識(shí),遺留了一個(gè)問題:

這里面的
name='add2'是干什么用的呢?
簡(jiǎn)單說,name 可以用于在 templates, models, views ……中得到對(duì)應(yīng)的網(wǎng)址,相當(dāng)于“給網(wǎng)址取了個(gè)名字”,只要這個(gè)名字不變,網(wǎng)址變了也能通過名字獲取到。
2繼續(xù)學(xué)習(xí),修改calc/views.py
為了弄清楚這個(gè)問題,修改視圖文件,如下:
創(chuàng)建首頁(yè)home.html,通過render引入進(jìn)來

修改
urls.py文件,添加如下規(guī)則:
url(r'^$',calc_views.home,name='home'),
當(dāng)我們點(diǎn)擊home中的超鏈接的時(shí)候 會(huì)訪問超鏈接,路勁如下:
如果這樣寫“死網(wǎng)址”,會(huì)使得在改了網(wǎng)址(正則)后,模板(template),視圖(views.py,用以用于跳轉(zhuǎn)),模型(models.py,可以用用于獲取對(duì)象對(duì)應(yīng)的地址)用了此網(wǎng)址的,都得進(jìn)行相應(yīng)的更改,修改的代價(jià)很大,一不小心,有的地方?jīng)]改過來,就不能用了。
so,下面我們要完成動(dòng)態(tài)的去修改這些個(gè)參數(shù)們
3 實(shí)現(xiàn)動(dòng)態(tài)修改參數(shù)們
>>> from django.core.urlresolvers import reverse
>>> reverse('add2', args=(4,5))
u'/add/4/5/'
>>> reverse('add2', args=(444,555))
u'/add/444/555/'
reverse 接收 url 中的 name 作為第一個(gè)參數(shù),我們?cè)诖a中就可以通過 reverse() 來獲取對(duì)應(yīng)的網(wǎng)址(這個(gè)網(wǎng)址可以用來跳轉(zhuǎn),也可以用來計(jì)算相關(guān)頁(yè)面的地址),只要對(duì)應(yīng)的 url 的name不改,就不用改代碼中的網(wǎng)址。
在模板中修改,如下
不帶參數(shù)的:
{% url 'name' %}
帶參數(shù)的:參數(shù)可以是變量名
{% url 'name' 參數(shù) %}
例如:
<a href="{% url 'add2' 4 5 %}">link</a>
4 老接口自動(dòng)實(shí)現(xiàn)跳轉(zhuǎn)新接口
在views.py中新寫一個(gè)函數(shù)

修改
urls.py中的路徑匹配

當(dāng)我們?cè)谠L問
/add的時(shí)候 就會(huì)自動(dòng)跳轉(zhuǎn)打/new_add的路徑 了