django路由系统之反向生成url

from niubin.service import v1
from django.urls import reverse
from django.shortcuts import HttpResponse,redirect


def index(request):
   print(reverse('index1'))
print(reverse('xx:xx1:add')) return redirect(reverse('index2',args=(2,3)))
def test(request,*args,**kwargs): return HttpResponse('q') urlpatterns = [ url(r'^index/', index,name='index1'), url(r'^test/(\d+)/(\d+)/', test,name='index2'), url(r'^admin/', ([ url(r'^app01/', index,name='add'), url(r'^app01/', index), url(r'^app01/', ([ url(r'^c/', index), url(r'^userinfo/add', index, name='add'), url(r'^userinfo/(\d+)/delete', index), url(r'^userinfo/(\d+)/change', index), ], 'xx1', 'xx1')), ],'xx','xx')), url(r'^nb/', v1.site.urls) ]

注释:1、如图所示如果路由系统url后面有参数name='xxx',想要在任意函数中生成name='xxx'的url路径,就必须使用reverse(''x'')方法,x指代的是name对应的值

   2、如图所示如果路由系统url有相应的数字,想要在任意函数中生成name='xxx'的url路径并且把数字也显示出来,就必须使用reverse(''x'',args=(w,z))方法,x指代的是name对应的值,w和z指代的是url上对应的数字

   3、如图所示如果路由系统url上有路由重定向,想要在任意函数中生成name='xxx'的url路径,就必须使用reverse(''namespace:x'')方法,namespace指代的是路由重分发的第三个参数值,并且如果存在多次路由重分发使用reverse(''namespace:namespace1:x'')方法时namespace就必须从外到里写

posted @ 2017-10-19 16:56  mx轩  阅读(125)  评论(0编辑  收藏  举报