웹은 브라우저 상에서 페이지가 구현된다. Flask 는 브라우저상의 프론트 환경을 구현하기 위해서 jinja2를 내장하고 있다.
Flask 는 jinja2 템플렛엔진이다. jinja2는 또다른 python web framework 인 Django 의 템플릿 엔진에서 모델링 되었다.
그래서 html 을 한장 한장 일일히 작성할 필요가 없다.
layout 이 되는 베이스 html 문서만 작성후, 필요한 페이지 마다 이미 만들어진 layout.html 을 상속(extends) 하면 된다.
이 프로젝트 템플리팅을 다음과 같이 진행하도록 한다.
플라스크의 render_template 함수를 이용한다.
Corey Schafer 의 프론트 샘플을 이용한다.(Bootstrap)
!--jinja2 의 문법 구조--!
<title>{% block title %}{% endblock %}</title>
<ul>
{% for user in users %}
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
</ul>
jinja2 의 특징은 다음과 같다.
- 쉽게 조작가능한 문법
- 템플릿 상속
- 바로 옵티멀한 파이썬 코드로 jit 컴파일
- 쉬운 디버깅