반응형
지금까지 Django 학습한 내용을 바탕으로 정리를 해보려 한다.
목차 |
1. Jinja
2. extends
3. block
[작업 환경]
MacOS, PyCharm
pyenv, poetry
Python, Django
1. Jinja |
1. Jinja 란?
- Django에서 사용하는 템플릿 문법이다.
- HTML과 Python 데이터를 연결해주는 역할을 한다.
2. Jinja 문법 정리
문법 | 설명 |
{{ 변수명 }} | 변수 값 출력 |
{% if문 %} ... {% endif %} | 조건문 |
{% for문 %} ... {% endfor %} | 반복문 |
{# 주석 처리 #} | 주석 처리 |
{% include '파일명.html' %} | 특정 템플릿 삽입 |
{% url 'url_name' pk=1 %} | URL Reverse (URL 생성) |
{% load static %} <img src="{% static 'img/logo.png' %}"> |
정적 파일 경로 지정 |
2. extends |
1. extends 란?
- 부모 템플릿을 상속받을 때 사용하는 태그이다.
- 자식템플릿 가장 첫 줄에 작성한다.
- 부모 템플릿의 레이아웃을 그대로 사용하면서 필요한 부분 재정의 할 수 있다.
2. extends 사용예시
# base.html (부모템플릿)
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}기본 제목{% endblock %}</title>
</head>
<body>
<div id="content">
{% block content %}
기본 콘텐츠입니다.
{% endblock %}
</div>
</body>
</html>
# list.html (자식템플릿)
{% extends 'base.html' %}
3. block |
1. block 이란?
- 자식 템플릿에서 덮어쓸 수 있는 영역이다.
- 부모 템플릿에 block <block명>을 작성하면 자식 템플릿에서 동일 이름으로 코드를 덮어 쓴다.
- 쉽게, 부모 템플릿에 block content라는 이름으로 영역을 만들어 놓고
자식 템플릿에 blck content라는 이름으로 해당 영역을 재정의(오버라이딩) 하는 것이다.
2. block 사용예시
# base.html (부모템플릿)
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}기본 제목{% endblock %}</title>
</head>
<body>
<header>공통 헤더</header>
<main>
{% block content %}
기본 콘텐츠
{% endblock %}
</main>
<footer>공통 푸터</footer>
</body>
</html>
# list.html (자식템플릿)
{% extends "base.html" %}
{% block title %}홈페이지{% endblock %}
{% block content %}
<h1>환영합니다!</h1>
{% endblock %}
반응형
'Web Backend > Django' 카테고리의 다른 글
[Django] Django 학습 정리 - Django ORM (0) | 2025.03.29 |
---|---|
[Django] Django 학습 정리 - Django Form (0) | 2025.03.29 |
[Django] Django 학습 정리 - FBV(Function Based View)와 URL (0) | 2025.03.29 |
[Django] Django 학습 정리 - Model 정의 및 Migration (0) | 2025.03.28 |
[Django] Django 학습 정리 - Django 초기셋팅 (0) | 2025.03.28 |
댓글