Django学习(5)-URL name进阶

1学完前面的知识,遗留了一个问题:

Django学习(5)-URL name进阶_第1张图片

这里面的 name='add2'是干什么用的呢?

简单说,name 可以用于在 templates, models, views ……中得到对应的网址,相当于“给网址取了个名字”,只要这个名字不变,网址变了也能通过名字获取到。

2继续学习,修改calc/views.py

为了弄清楚这个问题,修改视图文件,如下:
创建首页home.html,通过render引入进来

Django学习(5)-URL name进阶_第2张图片

修改 urls.py文件,添加如下规则:

url(r'^$',calc_views.home,name='home'),

当我们点击home中的超链接的时候 会访问超链接,路劲如下:

http://127.0.0.1:8000/add/4/5/

如果这样写“死网址”,会使得在改了网址(正则)后,模板(template),视图(views.py,用以用于跳转),模型(models.py,可以用用于获取对象对应的地址)用了此网址的,都得进行相应的更改,修改的代价很大,一不小心,有的地方没改过来,就不能用了。

so,下面我们要完成动态的去修改这些个参数们

3 实现动态修改参数们

>>> 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 作为第一个参数,我们在代码中就可以通过 reverse() 来获取对应的网址(这个网址可以用来跳转,也可以用来计算相关页面的地址),只要对应的 url 的name不改,就不用改代码中的网址。

在模板中修改,如下

不带参数的:
{% url 'name' %}
带参数的:参数可以是变量名
{% url 'name' 参数 %}

例如:
link

4 老接口自动实现跳转新接口

views.py中新写一个函数

Django学习(5)-URL name进阶_第3张图片

修改 urls.py中的路径匹配


当我们在访问 /add的时候 就会自动跳转打 /new_add的路径 了

你可能感兴趣的:(Django学习(5)-URL name进阶)