1-7. Jinja (Template Engine)
Jinja 란?
- Jinja는 파이썬 기반의 템플릿 엔진으로, 주로 웹 개발 프레임워크인 Django, Flask에서 사용됩니다.
- 동적으로 데이터를 렌더링하여 HTML, XML, 또는 기타 마크업 언어로 출력하는 데 사용됩니다.
Jinja 문법적 특징
1. 변수 출력
- {{ ... }}: 이 구문은 변수의 값을 출력할 때 사용됩니다. 템플릿에 전달된 변수나 표현식의 결과를 렌더링할 수 있습니다.
<p>{{ variable_name }}</p>
2. 제어 구조
- {% ... %}: 이 구문은 조건문, 반복문 등의 제어 구조를 표현할 때 사용됩니다.
조건문:
{% if user %}
<p>Hello, {{ user.name }}!</p>
{% else %}
<p>Hello, Guest!</p>
{% endif %}
반복문:
<ul>
{% for item in item_list %}
<li>{{ item }}</li>
{% endfor %}
</ul>
간단한 예제:
app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
# 템플릿에 전달할 데이터
data = {
'title': 'Flask Jinja Template',
'user': 'Inseop',
'is_admin': True,
'items': ['Item 1', 'Item 2', 'Item 3']
}
# render_template을 사용하여 템플릿 파일을 렌더링
return render_template('index.html', data=data)
if __name__ == '__main__':
app.run()
- render_template
- Flask는 템플릿을 찾기 위해 templates 폴더를 기본으로 사용합니다.
index.html
- templates 폴더 안에 위치해야 함 ⇒ templates/index.html
`
<!DOCTYPE html>
<html>
<head>
<title>{{ data.title }}</title>
</head>
<body>
<h1>Hello, {{ data.user }}!</h1>
{% if data.is_admin %}
<p>You have admin privileges.</p>
{% else %}
<p>You do not have admin privileges.</p>
{% endif %}
<ul>
{% for item in data.items %}
<li>{{ item }}</li>
{% endfor %}
</ul>
</body>
</html>
이 템플릿은 변수(title, user, is_admin, items)과 제어 구조(if, for)를 사용하여 동적인 HTML을 생성합니다.
'Flask' 카테고리의 다른 글
Chapter 2-1 REST API 개념 정리 및 해석 (0) | 2025.04.18 |
---|---|
Chapter 1-6 Flask 프로젝트 세팅 (0) | 2025.04.17 |
Chapter 1-7 라우팅(Routing) (0) | 2025.04.17 |
Chapter 1-5 Flask란? (0) | 2025.04.17 |
Chapter 1-4 Flask 서버 구축을 위한 개발 환경 설정 (0) | 2025.04.17 |