django urls.py 中的name 使用方法

使用場景:

當我們在url的時候,一般情況下都是使用很明確的url地址。如在網(wǎng)頁里面使用登錄.像這樣的鏈接有很

多。假如有一天,突然需要改變登錄的鏈接,想將/login變成/login_first 這樣的話,就需要將url里面的正則改變成

^login_first/$,同時再將標簽里面的href變成/login_first。像這樣的鏈接太多了,根本就無法修改。

在template中使用name:

name--> url

所以這里就可以使用url里面自帶的name的方法。 ?? 對于像這樣鏈接的操作。 用法: 不帶參數(shù)的: {% url 'name' %} 帶參數(shù)的:參數(shù)可以是變量名?{% url 'name' 參數(shù) %}?所以這里的改變?yōu)椋簎rl('^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/自動跳轉到新的網(wǎng)址呢?要知道Django不會幫你做這個,這個需要自己來寫一個跳轉方法。 這里需要我們使用reverse這個函數(shù),作用:reverse 接收 url 中的 name 作為第一個參數(shù)

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 ?

  ##新添的函數(shù) ?

  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 現(xiàn)在的話,我們訪問127.0.0.1/add/3/4/會得到新的鏈接/127.0.0.1/new_add/3/4/,并且新的鏈接的內容也是7

解釋:reverse的第一個參數(shù)為add2,那么它就會到url取新的鏈接,為new_add/,再加上后面的參數(shù),就成為/new_add/3/4,并且使用add2的函數(shù),得到想要的值。

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


在python中

url---> name

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 已經(jīng)同步到gitbook,想閱讀的請轉到gitbook: Django 1.10 中文文檔 URL dispatc...
    leyu閱讀 14,441評論 0 16
  • (一)、啟動服務器 (二)、創(chuàng)建數(shù)據(jù)庫表 或 更改數(shù)據(jù)庫表或字段 Django 1.7.1及以上 用以下命令 1....
    夏天夏星閱讀 5,965評論 0 17
  • 經(jīng)過對django的初步學習,我們已經(jīng)對后臺的基本流程以及django的運作有了一定的了解,但是這還不足夠,dja...
    coder_ben閱讀 3,958評論 8 34
  • 4 創(chuàng)建一個社交網(wǎng)站 在上一章中,你學習了如何創(chuàng)建站點地圖和訂閱,并且為博客應用構建了一個搜索引擎。在這一章中,你...
    lakerszhy閱讀 2,262評論 0 7
  • 此段內容簡要來自自強學堂的教程詳情請查詢自強學堂 一、 后臺的運作流程 接收request請求 處理數(shù)據(jù) 獲取請求...
    coder_ben閱讀 5,347評論 6 56

友情鏈接更多精彩內容