作用:对URL路由关系进行命名, ***** 以后可以根据此名称生成自己想要的URL *****
name的两大应用
url(r'^asdfasdfasdf/', views.index, name='i1'),
url(r'^yug/(\d+)/(\d+)/', views.index, name='i2'),
url(r'^buy/(?P<pid>\d+)/(?P<nid>\d+)/', views.index, name='i3'),
一,浏览一论坛看到第十页,发现要登录才能查看内容,于是登录,但是登录成功后你得跳转到第十页啊。即跳回原网页
模板语言调用:
{% url "i1" %} ==> asdfasdfasdf/
{% url "i1" %}2/3 ==> asdfasdfasdf/2/3 跳到固定页面
方法一:会把uri全带上
<form action="{{ request.path_info }}" method="get">
<input type="text" name="user"/>
<input type="submit" value="提交" />
</form>
二,某些特殊情况下,新增一篇博客,或是登录成功,得跳到指定页面,而不是当前页面。
方法一:只会带上name的值,适合跳到固定页面
<form action="{% url 'i1' %}" method="get">
<input type="text" name="user"/>
<input type="submit" value="提交" />
</form>
reverse函数,将name反转换成url,目的也是跟上面一样
from django.urls import reverse
url(r'^asdfasdfasdf/', views.index, name='i1'),
v=reverse('i1')
url(r'^yug/(\d+)/(\d+)/', views.index, name='i2'),
v1 = reverse('i2',args=(1,2))
url(r'^buy/(?P<pid>\d+)/(?P<nid>\d+)/', views.index, name='i3'),
v1 = reverse('i3',kwargs={'uid':3,'pid':'5',})