목차
- Jinja 템플릿 개요
- Jinja 템플릿 예제
- Jinja 템플릿 파일확장자
Jinja 템플릿 개요
1.
- Jinja 템플릿은 단순한 텍스트 파일임.
- Jinja는 모든 텍스트 기반 형식(HTML, XML, CSV, LaTeX 등)을 생성 가능함.
- Jinja 템플릿에는 특정 확장자가 필요 없음. (예: .html, .xml 또는 기타 확장자 모두 가능.)
2.
- 템플릿에는 템플릿이 렌더링될 때 값으로 대체되는 변수 및/또는 표현식이 포함되어 있는데, 이는 템플릿의 논리를 제어하는 태그임.
- 템플릿 구문은 Django와 Python에서 많은 영감을 받았음.
Jinja 템플릿 예제
<!DOCTYPE html>
<html lang="ko">
<head>
<title>내 웹피이지</title>
</head>
<body>
<ul id="navigation">
{% for item in navigation %}
<li><a href="{{ item.href }}">{{ item.caption }}</a></li>
{% endfor %}
</ul>
<h1>내 웹페이지</h1>
{{ a_variable }}
{# a comment #}
</body>
</html>
PS. 정리
1.
애플리케이션 개발자는 구문 구성을 {% ... %}에서 <% ... %> 또는 이와 유사한 것으로 변경 가능.
2. 구분 기호에는 몇 가지 종류가 있는데, 기본 Jinja 구분 기호는 다음과 같음.
- {% ... %} - 구문에 사용. (예: 조건문/반복문 등 표현)
- {{ ... }} - 출력에 사용. (예: 표현식/변수 등 출력)
- {# ... #} - 주석에 사용. (예: 코드실행방지/코드설명 등)
3.
라인 문과 주석 (Line Statements and Comments)도 가능하지만, 기본 접두사 문자는 없음. (이를 사용하려면, 환경 생성 시 line_statement_prefix 및 line_comment_prefix 설정 필요.)
Jinja 템플릿 파일확장자
※ 어떤 파일이 템플릿 파일인지 확인하는 방법 소개.
1.
- 위에서 설명한 대로 파일 확장자에 관계없이 모든 파일을 템플릿으로 로드 가능.
- user.html.jinja와 같은 .jinja 확장자를 추가하면 일부 IDE 또는 편집기 플러그인이 더 쉬워질 수 있지만 필수는 아님.
- 나중에 소개될 자동 이스케이프는 파일 확장자에 따라 적용될 수 있으므로 이 경우 추가 접미사를 고려해야 함.
2.
- 템플릿을 식별하는 또 다른 좋은 경험적 방법은 확장자에 관계없이 templates 폴더에 있다는 것임. (그누보드6 경우, /templates 폴더 안에 있음.)
- 이는 프로젝트의 일반적인 레이아웃임.