Django 路由name使用

Django 路由name使用

  • name:对URL路由关系进行命名

***以后可以根据此名称生成自己想要的URL***

# 路由 url 三种形式   
url(r'^index/', views.index,name='indexx' name='i1'),
url(r'^index/(d+)/', views.index,name='i2'),
url(r'^index/(?P<nid>d+)/', views.index,name='i3'),

1、根据name生成新的url

# view 文件内------------------------------------
def func(request, *args, **kwargs): from djangourls import reverse # 等于 index url1 = reverse('i1') # 等于 index/1/2 url2 = reverse('i2', args=(1,2,)) # 等于 index/1/9 url3 = reverse('i3', kwargs={'pid':1,"nid":9})
# html 文件内-------------------------------
# 生成地址 index {% url "i1" %} # 生成地址 index/1/2 {% url "i2" 1 2 %} # 生成地址 index/1/9 {% url "i2" oid=1 pid=9 %}

2、修改当前url

# 将返回的url转换为其他url
url(r'^index/(d+)/', views.index,name='indexx'),

def index(request,nid):
    from django.urls import reverse
    # 如果indexx后面有其他值,还需要传入其他值。
    v = reverse('indexx',args=(90,))
# 将返回的url转换为其他url
url(r'^index/(?P<nid>d+)/', views.index,name='indexx'),

def index(request,nid):
    from django.urls import reverse
    # 如果indexx后面有其他值,还需要传入其他值。
    v = reverse('indexx',kwargs={"nid":1})

其他方法 

URL:
url(r'^index/', views.index,name='indexx'),

模板语言:
# html内传入name的url路径
{% url "indexx" %}
html内传入name的url路径
URL:
# 正则参数可以加入多个
url(r'^index/(d+)/', views.index,name='indexx'),
url(r'^index/(?P<nid>d+)/', views.index,name='indexx'),

模板语言:
# html内传入name的url路径,加入任意参数任意跳转位置
# 可以做更多的自定制操作
{% url "indexx" 2 %}
{% url “indexx” uid=2 nid=3 }
html内传入name的url路径,加入任意参数任意跳转位置

原文地址:https://www.cnblogs.com/xiangsikai/p/10919258.html