Jinja2는 「HTML 안에 파이썬스러운 문법으로 데이터를 채우는」 템플릿 엔진입니다.
Flask·FastAPI(옵션)에서 기본, Django의 템플릿과도 비슷한 문법.
기본 문법.
{{ variable }} — 변수 출력.
{{ user.name }} — 속성/항목 접근.
{{ user["name"] }}도 됨.
HTML 태그는 자동 escape — 안전한 기본값.
제어 구문.
{% if user.is_admin %}...{% endif %}.
{% for post in posts %}
{{ post.title }}{% endfor %}.{% else %} / {% elif %}도 지원.
들여쓰기는 무관.
필터 — | 문자로 변환.
{{ name|upper }} — 대문자.
{{ html|safe }} — escape 안 함(주의, XSS).
{{ list|length }} — 길이.
{{ date|strftime("%Y-%m-%d") }}.
사용자 정의 필터도 등록 가능.
상속과 매크로.
{% extends "base.html" %} + {% block content %}...{% endblock %}로 레이아웃 재사용.
{% macro button(label) %}{{ label }}{% endmacro %}로 함수처럼 재사용 가능한 컴포넌트.
한 줄 요약
Jinja2는 {{ }}·{% %} 문법으로 HTML에 데이터를 채우는 템플릿 엔진입니다.
자동 escape, 필터, extends/block 상속, macro 컴포넌트가 핵심입니다.
더 알아볼 것
- autoescape 설정
- 사용자 정의 필터·테스트
- Jinja2 vs Django 템플릿