Python Template Engine Jinja에 대하여 알아보려합니다.



# Jinja는 무엇인가?

Jinja는 Python의 템플릿 엔진으로 Jinja2가 현재 주로 사용되고 있습니다. 모든 Unicode를 지원하며 Template 내부의 html에 사용됩니다. 특징은 아래와 같습니다.
  • 자동 크로스사이트 scripting escaping 시스템
  • Python 컴파일과의 높은 성능
  • 모든 템플릿 페이지에 사용 가능한 템플릿 레이아웃(Template Inheritance)
  • 간편한 디버깅 시스템(Python 컴파일, 런타임 에러에 통합)
Jinja2는 아래와 같이 Template에서 사용됩니다.
<div>
  {{ extends "webisfree.html" }}
    <ul>
    {{ for item in posts }}
    <li>{{ item.title }}</li>
    {{ endfor }}
    </ul>
</div>

Python의 Flask 프레임워크를 사용한다면 기본적으로 Jinja 템플릿 엔진이 사용됩니다. Django 프레임웍은 이와 다르게 자체 Django template engine을 가지고 있어 다른 문법으로 사용되는 점 참고하세요. 특히 필터링 방식으로 사용되는 Template은 Django의 template 엔진입니다.

{{ item | title }}

위와 같은 경우가 그 예입니다.