SBA - 장고 3.1

장고 3.1

SBA - 장고 3.1 장고 3.1
본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

템플릿에서 하드코딩된 URL 제거하기

템플릿에서 하드코딩된 URL 제거하기

`polls/index.html` 템플릿에 링크를 적으면, 이 링크는 다음과 같이 부분적으로 하드 코딩된다는 것을 기억하세요.

<li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>

하드 코딩이 문제는 수 많은 템플릿을 가진 프로젝트들의 url을 바꾸는게 어려운 일이 된다는 점이다.

그러나 `polls.urls` 모듈의 path() 함수에서 인수의 이름을 정의했으면, `{% url %} template` 태그를 사용하여 `url` 설정에 정의된 특정한 URL 경로들의 의존성을 제거할 수 있습니다.

<li><a href="{% url 'detail' question.id %}">{{ question.question_text }}</a></li>

이것은 `polls.urls` 모듈에 서술된 URL의 정의를 탐색하는 식으로 동작합니다. 다음과 같이 <detail> 이라는 이름의 URL 이 어떻게 정의되어 있는지 확인 할 수 있습니다.

...
# the 'name' value as called by the {% url %} template tag
path('<int:question_id>/', views.detail, name='detail'),
...

 만약 상세 뷰의 URL을 `polls/specifics/12/`로 바꾸고 싶다면, 템플릿에서 바꾸는게 아니라 polls/urls.py에서 바꿔야 합니다.

...
# added the word 'specifics'
path('specifics/<int:question_id>/', views.detail, name='detail'),
...

실행결과 

댓글

댓글 본문
graphittie 자세히 보기