zoukankan      html  css  js  c++  java
  • django urls.py 中的name 使用方法

     

    使用场景:

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

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

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

    在template中使用name:

    name--> url

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

    接,并将前面的url赋给<a>标签中的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

  • 相关阅读:
    poj3614 Sunscreen 题解报告
    poj2299 Ultra-QuickSort 题解报告
    poj3784 Running Median 题解报告(对顶堆)
    CH103 Cinema 题解报告
    poj1845 Sumdiv 题解报告
    poj2018 Best Cow Fences 题解报告
    $CF311B Cats Transport$ 斜率优化
    斜率优化入门题:任务安排$123$ : )
    $Poj1821 Fence $单调队列优化$DP$
    《算法竞赛》$0×00$基本算法
  • 原文地址:https://www.cnblogs.com/fepapa/p/6033073.html
Copyright © 2011-2022 走看看