美文网首页
django urls.py 中的name 使用方法

django urls.py 中的name 使用方法

作者: oscar_ruan123 | 来源:发表于2018-01-22 14:18 被阅读0次

    使用场景:

    当我们在url的时候,一般情况下都是使用很明确的url地址。如在网页里面使用登录.像这样的链接有很

    多。假如有一天,突然需要改变登录的链接,想将/login变成/login_first 这样的话,就需要将url里面的正则改变成

    ^login_first/$,同时再将标签里面的href变成/login_first。像这样的链接太多了,根本就无法修改。

    在template中使用name:

    name--> url

    所以这里就可以使用url里面自带的name的方法。    对于像这样链接的操作。 用法: 不带参数的: {% url 'name' %} 带参数的:参数可以是变量名 {% url 'name' 参数 %} 所以这里的改变为:url('^login_first/$',views.login,name="login_first")(对于其他部分自动补脑),在.    解释:{% url 'login_first'%},这里的login_first代表着这个url自动去寻找django的url里面name="login_first"这个条链

    接,并将前面的url赋给标签中的href。

    在python中

    name---> url 

    这时如何让以前的 /add/3/4/自动跳转到新的网址呢?要知道Django不会帮你做这个,这个需要自己来写一个跳转方法。 这里需要我们使用reverse这个函数,作用:reverse 接收 url 中的 name 作为第一个参数

    old的方法:url: url(r'^add/(\d+)/(\d+)/$', views.add2),

    views:  from django.http import HttpResponseRedirect,HttpResponse  

               from django.core.urlresolvers import reverse

               def add2(request,a,b):    

           c=int(a)+int(b)  

           return HttpResponse(str(c))

    new方法:

       url(r'^add/(\d+)/(\d+)/$', views.add2_redirect),    

       url(r'^new_add/(\d+)/(\d+)/$', views.add2, name='add2'),

    views:

       from django.http import HttpResponseRedirect,HttpResponse  

      from django.core.urlresolvers import reverse  

      ##新添的函数  

      def add2_redirect(request, a, b):      

    return Redirect(reverse('add2', args=(a, b))

       def add2(request,a,b):     

        c=int(a)+int(b)   

        return HttpResponse(str(c))

    原本我们访问127.0.0.1/add/3/4/   会得到7 现在的话,我们访问127.0.0.1/add/3/4/会得到新的链接/127.0.0.1/new_add/3/4/,并且新的链接的内容也是7

    解释:reverse的第一个参数为add2,那么它就会到url取新的链接,为new_add/,再加上后面的参数,就成为/new_add/3/4,并且使用add2的函数,得到想要的值。

    参考:http://www.ziqiangxuetang.com/django/django-url-name.html

    在python中

    url---> name

    相关文章

      网友评论

          本文标题:django urls.py 中的name 使用方法

          本文链接:https://www.haomeiwen.com/subject/qrmlaxtx.html