Chapter 1-8 Jinja (Template Engine)

2025. 4. 17. 13:08·Flask

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
'Flask' 카테고리의 다른 글
  • Chapter 2-1 REST API 개념 정리 및 해석
  • Chapter 1-6 Flask 프로젝트 세팅
  • Chapter 1-7 라우팅(Routing)
  • Chapter 1-5 Flask란?
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (472) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (21)
      • Database (40)
      • 멘토링 (7) N
      • 특강 (18)
      • 기술블로그 (126) N
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (34) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 1-8 Jinja (Template Engine)
상단으로

티스토리툴바