1. 程式人生 > 實用技巧 >django-11-url反向解析

django-11-url反向解析

反向解析namespace

反向解析:無論urls如何變化,都會根據name解析為正確的地址

專案.urls.py

url(r'^',include('應用名.urls',namespace='應用名booktest'))

應用.urls.py

url(r'^index',views.index,name='自定義名稱index')

模板引用

<a href="{% url 'booktest:index' %}">首頁</a>
# 自動解析為:
#      127.0.0.1:8000/index

反向解析-位置引數

應用.urls.py

url(r'^index/(\d+)/(\d+)$',views.index,name='自定義名稱index1')

模板引用

<a href="{% url 'booktest.index1' 1 2 %}">
# 自動解析為:
#      127.0.0.1:8000/index/1/2

檢視函式

def index(request,a,b)
      return HttpResponse('ok')

反向解析-關鍵字引數

應用.urls.py

url(r'^index/(?P<n1>\d+)/(?P<n2>\d+)$',views.index,name='自定義名稱index1')

檢視函式views.py

def index(request,n1,n2)
      return HttpResponse('ok')

模板html

<a href={% url 'booktest:index1' a=3 b=4 %}>

檢視配置反向解析

from django.core.urlresolvers import reverse
def test_reverse(request):
      # 重定向到index
      url=reverse('booktest:index')
      # 位置引數重定向到index/1/2
      url1=reverse('booktest:index',args={1,2})
      # 關鍵字引數
      url1=reverse('booktest:index',kwargs={'a':1,'b':2}) 
      return redirect(url)