장고

장고 템플릿 사용법

템플릿이란?

장고에서 템플릿은 웹 페이지의 HTML 구조를 동적으로 생성하는 데 사용되는 파일입니다. 템플릿은 서버 측에서 데이터를 받아와 사용자에게 보여줄 최종 HTML 페이지를 만듭니다. 템플릿 내에서는 장고의 템플릿 언어를 사용하여 변수 출력, 반복문, 조건문 등을 작성할 수 있습니다. 템플릿 파일은 일반적으로 templates 디렉토리 내에 위치하며, .html 확장자를 가집니다. 이를 통해 동적인 웹 페이지를 생성할 수 있습니다.

템플릿에서 변수 출력하기

장고 템플릿에서 변수를 출력하려면 {{ variable_name }} 구문을 사용합니다. 예를 들어, {{ post.title }}는 post 객체의 title 속성 값을 HTML 페이지에 출력합니다. 뷰에서 템플릿으로 전달한 데이터를 {% %} 없이 직접 {{ }} 안에 넣어 동적으로 표시할 수 있습니다. 이를 통해 서버에서 전달된 데이터를 사용자에게 쉽게 보여줄 수 있습니다.

템플릿에서 조건문과 반복문 사용하기

장고 템플릿은 기본적인 조건문과 반복문을 지원하여 동적인 페이지를 만들 수 있습니다. 조건문은 {% if condition %}...{% endif %} 형태로 사용하고, 반복문은 {% for item in list %}...{% endfor %} 형태로 사용합니다. 예를 들어, {% if post %}를 사용하여 게시물이 존재할 때만 내용을 표시하거나, {% for post in posts %}로 게시글 목록을 반복해서 출력할 수 있습니다. 이를 통해 페이지의 내용이 동적으로 변화합니다.

템플릿 상속과 블록 사용하기

장고는 템플릿 상속 기능을 제공하여 코드의 재사용성을 높입니다. 기본 템플릿을 base.html로 정의하고, 다른 템플릿에서는 {% extends "base.html" %}와 {% block content %}...{% endblock %} 구문을 사용하여 특정 부분을 재정의할 수 있습니다. 이를 통해 헤더, 푸터와 같은 공통 부분은 base.html에서 관리하고, 페이지별로 다른 내용만 정의할 수 있습니다. 템플릿 상속을 사용하면 코드 중복을 줄이고, 유지보수가 용이해집니다.

템플릿에서 URL 생성하기

장고 템플릿에서 URL을 생성하려면 {% url 'view_name' %} 구문을 사용합니다. 예를 들어, urls.py에 path('post/<int:id>/', post_detail, name='post_detail')와 같이 이름을 지정한 URL 패턴을 템플릿에서 {% url 'post_detail' post.id %}로 동적으로 생성할 수 있습니다. 이 방법을 사용하면 URL이 변경되어도 템플릿 내에서 URL을 일일이 수정할 필요 없이 자동으로 업데이트됩니다.