Django의 역방향 해석 URL

2392 단어 django
Django에서는 두 방향으로 사용할 수 있는 URL 매핑에 대한 솔루션을 제공합니다.
            1.클라이언트의 브라우저가 url 요청을 하는데 Django는 URL 분석에 따라 url의 파라미터를 포획하고 해당하는 시도를 호출합니다.
해당하는 데이터를 가져와 클라이언트에게 되돌려줍니다
             2.하나의 보기 이름에 매개 변수와 값을 더해서 역으로 URL을 가져옵니다
첫 번째는 일반적인 요청이 URLconf로 해석되는 과정이다. 두 번째는 url의 역방향 해석, url의 역방향 일치, url의 역방향 검색 등이라고 한다.
Django는 다음과 같은 다양한 수준의 URL 리버스 프로세싱 도구를 제공합니다.
             1.템플릿templates에서 url 표시를 사용합니다. 예를 들어: {% url%}
             2.Python 코드에서django를 사용합니다.core.urlresolvers.reverse () 방법
             3.더 높은 단계의 처리 URL에서 getabsolute_url () 방법
예는 다음과 같습니다.
URLconf:
 
from django.conf.urls import patterns, url



urlpatterns = patterns('',

    #...

    url(r'^articles/(\d{4})/$', 'news.views.year_archive'),

    #...

)

디자인에 따르면 이 URL의 목적은 nnnn년의 글 저장 (archive), 즉/articles/nnnnnnn/
 
1. 템플릿에서 다음과 같이 사용할 수 있습니다.
 
<a href="{% url 'news.views.year_archive' 2012 %}">2012 Archive</a>

{# Or with the year in a template context variable: #}

<ul>

{% for yearvar in year_list %}

<li><a href="{% url 'news.views.year_archive' yearvar %}">{{ yearvar }} Archive</a></li>

{% endfor %}

</ul>

먼저 보기'news'에 따라views.year_artichive'는 지정한 URLconf에 위치하고 뒤에 있는 2012는articles/\d{4}를 채울 수 있습니다
 
최종 결과는 2012 Archive입니다. 이것은 시도와 제공한 값에 따라 URL을 역방향으로 조회하는 것입니다.
아래의 유사,
2.python 코드에서
from django.core.urlresolvers import reverse

from django.http import HttpResponseRedirect



def redirect_to_year(request):

    # ...

    year = 2006

    # ...

    return HttpResponseRedirect(reverse('news.views.year_archive', args=(year,)))

설명: 우선django.core.urlresolvers.reverse() 방법을 도입해야 하며, 그 다음에 원리는 제공된 시도와 파라미터에 따라
 
의 값은 역방향으로 URLconf를 찾고 해당하는 URL과 일치한 다음에 값을 가져옵니다. 마지막으로reverse()가 되돌아오는 값은:articles/2006/입니다. 이렇게 하면 역방향으로 찾아냅니다.
필요한 URL

좋은 웹페이지 즐겨찾기