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" %}
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 }