django 路由系统中name应用

作用:对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',})

原文地址:https://www.cnblogs.com/alex-hrg/p/9687301.html