Jinja는 flask가 기본적으로 지원하는 템플릿엔진이다.


Jinja ( Flask 기본 템플릿 엔진 )

html코드 내에서 파이썬 백엔드에서 보내는 정보의 출력이나, html코드의 동적 제어등을 위해 사용하는 플라스크 기본 템플릿엔진이다.

  • {# ... #}

    : 주석 정의

{{ 변수 }}

변수나 표현식의 결과를 출력하는 구분자

ex ) test.py

return render_template('test.html', msg=msg)

ex ) test.html

{{ msg }}
  • 위와 같이 html파일로 데이터를 보내기 위해서는 render_template()함수를 이용하여 html파일을 출력할 때, 두번째 인자로 데이터를 보내면 중괄호 2개( { { } } )를 이용하여 해당 데이터를 출력할 수 있다.

  • 데이터는 하나뿐만 아니라, 콤마(,)를 구분자로 여러개를 보낼수도 있다.



{% … %}

if문,for문 등의 흐름 제어문을 할당하는 구분자

for문 사용

for반복문을 사용하기 위해서는 ‘{% for 개별요소 in 열거형데이터 %}‘의 문법을 시작으로, 반복문이 끝나는 지점에 반드시 ‘{% endfor %}‘를 붙여주어야 한다.

{% for item in navigation %}
<li><a href="{{ item.href }}">{{ item.caption }}</a></li>
{% endfor %}



if문

Jinja템플릿의 if는 if, elif, else 세가지 키워드로 구성할 수 있다.

{% if <조건> %}
    <실행코드>
{% elif <조건> %}
    <실행코드>
{% else %}
    <실행코드>
{% endif %}


형 변환

Jinja에서도 형변환이 가능하다. 파이썬 파일에서 데이터를 보낼 때 부득이하게 수정이 불가한 상황등이 있기 때문에 이럴경우 html파일에서 Jinja템플릿문법을 이용하여 형 변환 하여야 한다.
형변환의 방법은 출력데이터 뒤에 ‘{ { 데이터 | 변환할자료형 } }‘을 붙이는 것이다.

{{ number|int }} 



세 자릿수마다 콤마(,)추가

뒤에서부터 세자리 마다 콤마가 찍혀 있는 숫자형식을 포맷팅하기 위해 아래코드가 필요하다.
실수 또한 소수점 뒷자리 까지 적용된다.

{{'{:,}'.format(number[0])}}



공백 제거 / 공백 유지

Jinja는 기본적으로 데이터를 출력할 때 포함되어 있는 공백을 무시하지 않고 모두 출력한다.
따라서 아래 코드를 이용하여 공백을 제거 혹은 유지시킬 수 있다.

{%- %}, {%+ %}, {% -%}
  • '+'가 붙은 쪽은 공백을 유지

    시키고 '-'가 붙은 쪽은 공백을 제거하는 형식이다.