1学完前面的知识,遗留了一个问题:
这里面的
name='add2'
是干什么用的呢?
简单说,name 可以用于在 templates, models, views ……中得到对应的网址,相当于“给网址取了个名字”,只要这个名字不变,网址变了也能通过名字获取到。
2继续学习,修改calc/views.py
为了弄清楚这个问题,修改视图文件,如下:
创建首页home.html
,通过render
引入进来
修改
urls.py
文件,添加如下规则:
url(r'^$',calc_views.home,name='home'),
当我们点击home中的超链接的时候 会访问超链接,路劲如下:
如果这样写“死网址”,会使得在改了网址(正则)后,模板(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' 参数 %}
例如:
<a href="{% url 'add2' 4 5 %}">link</a>
4 老接口自动实现跳转新接口
在views.py
中新写一个函数
修改
urls.py
中的路径匹配
当我们在访问
/add
的时候 就会自动跳转打/new_add
的路径 了