참고 장고 - {% URL %} 템플릿 태그

흠 / _archives.html 
 
... 
{ % 에 대한 날짜  date_list % }
 <LI> 
  <a href= "{% URL 'blog:archive' date.year date.month %}"> 
    {{date.year}}年{{}} date.month月
   </a>에 
</ 리> 
{ % ENDFOR % } 
...

다음은  {% url %} 템플릿 태그의 역할은 분석보기 기능입니다  blog:archive 해당 URL 패턴 및 연도와 월에 URL 패턴을 대체  date.year, date.month 값.

{% url %} 첫 번째 파라미터는 엔드 포인트 콜론으로 분리 된 두 개의 부분으로 구성되어, 수신 된 태그 템플릿 포함보기 기능 해석된다. 애플리케이션 urls.py의 첫 부분이 지정된  app_name 값 (즉, 공간으로서의되도록하더라도 다른 애플리케이션 기능 명칭에 동일한 뷰는 충돌하지 않을 것이다)의 제 2 부분  path 함수 전달  name 파라미터 값. 예를 들어, 모듈 urls.py 블로그 애플리케이션에서, 우리는 지정  app_name = 'blog', archive URL 패턴 함수이다  path('archives/<int:year>/<int:month>/', views.archive, name='archive')따라서, 엔드 포인트의 대응하는 값  blog:archive.

{% url %} 수신 된 태그 템플릿 URL 경로 매개 변수의 다른 매개 변수 캡처에 매개 변수 URL 경로 모드 컨버터의 필요성 즉, 값. 예를 들어,  archive 보기 모드는 기능에 해당하는 URL입니다  archives/<int:year>/<int:month>/, 가정  date.year=2017, date.month=5다음  {% url 'blog:archive' date.year date.month %} 템플릿이 레이블에서 반환 / 아카이브 / 5분의 2,017 /가.

왜 사용 {% URL %} 템플릿 태그 그것? 사실, 하이퍼 HREF 속성이 설정되어  /archives/{{ date.year }}/{{ date.month }}/ 달성 될 수있는 동일한 목적 있지만, 그러한 접근 방식은 하드 - 코딩된다. 비록  blog:archive 도면이 형태에 대응하는 URL 패턴의 함수이지만, 언젠가 경우,이 패턴은 변경? 당신이 하드 코딩 된 표현을 사용하는 경우, 사방이해야 할  /archives/{{ date.year }}/{{ date.month }}/ 새로운 모델을 수정합니다. 당신이 {% URL %} 템플릿 태그를 사용하는 경우, 당신은 변경할 필요가 없습니다.

추천

출처www.cnblogs.com/ZJackSparrow/p/11960586.html