Python 기반의 템플릿 엔진으로, Flask와 같은 웹 프레임워크에서 동적 웹 페이지를 생성하는 데 주로 사용
쉽게 말하면 이걸 쓰면 HTML에서 코드 작성이 가능해져서 동적으로 만들 수 있다는 것
어라? 그거 이미 JS가 해주는거 아님?
동적인 홈페이지를 만들어준다는 것은 같지만 분야가 다르다.
Jinja2는 서버에서 웹 페이지를 생성하는 반면, JavaScript는 웹 페이지가 브라우저에 로드된 후에 동작한다. 즉, Jinja는 서버 사이드, JS는 클라이언트 사이드에서 홈페이지를 동적으로 만들어준다.
뭣보다 Jinja는 template engine으로서 template과 data model을 혼합하여, 새로운 document를 만드는 게 주 업무라 볼 수 있다.
{{ variable }}
참고로 이 변수는 문자열 안에서도 인식된다. 그래서
<img src="{{ d.image_url }}",
<form action="{{ url_for('music_create') }}", method="GET">와 같은 표현이 가능하다.
{% if user %}
Hello, {{ user }}!
{% else %}
Hello, Guest!
{% endif %}
{% for d in data %}
{{ d.title }}
{{ d.artist }}
{% endfor %}