Flask

[Flask] Jinja2 를 사용한 동적 HTML 띄우기

leeparang10 2025. 10. 18. 15:58

 

안녕하세요. 오늘은 Jinja2 + HTML 렌더링에 대해 알아보겠습니다.
!파이썬(py)은 이미 깔려 있다는 가정 하에 진행합니다!


 

목차

-  I.Jinja2란?
-  II.Jinja + HTML

(1) 구조
(2) flask
(3) HTML + Jinja2
(4) 렌더링

-  III. 마무리


I. Jinja2란?


 
Jinja2는 Python 기반의 템플릿 엔진
웹 개발에서 HTML 파일을 동적으로 생성할 때 주로 사용됩니다. Flask, Django 등 Python 웹 프레임워크와 함께 자주 쓰임.


Jinja2 가 무엇인지 알아보았기 때문에, 이제 Jinja2 + HTML 렌더링을 시작해 보도록 하자.



II. Jinja + HTML



1. 구조

flask + HTML 기본 구조

 

2. Flask

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    name = "Flask"    #name을 정의                 
    items = ["사과", "바나나", "체리"] #items를 정의     
    return render_template("index.html", name=name, items=items) # html로 정의 된 것을 넘김 

if __name__ == '__main__':
    app.run(debug=True)

flask 예시 코드
 

3. HTML + Jinja2

<!DOCTYPE html>
<html>
<head>
<title>Flask + Jinja2 예시</title>
</head>
<body>
<h1>안녕하세요, {{ name }}님!</h1> #넘어 온 name 출력


<h2>오늘의 과일 목록:</h2>
<ul>
{% for item in items %} #아이템 목록에서
<li>{{ item }}</li> #넘어온 아이템들 출력
{% endfor %}
</ul>


{% if "체리" in items %} #만약 체리가 아이템들 안에 있다면
<p>오늘은 체리가 포함되어 있습니다</p> #출력
{% else %} #아니면
<p>오늘 체리는 없네요</p> #출력
{% endif %}
</body>
</html>

HTML + Jinja2 예시 코드
 

4. 렌더링

HTML + Jinja2 렌더링

만약에 리스트 안에 체리가 없었다면 '오늘 체리는 없네요' 문장이 출력 되었겠죠?


III. 마무리


이상으로 Jinja2 + HTML 렌더링에 대해 마칩니다.


 

'Flask' 카테고리의 다른 글

[Flask] Flask 시작하기 + HTML 렌더링 하기.  (0) 2025.10.18