MTV 패턴 - Template
● Django Template Langauge (DTL)
1. 변수
▶유용한 변수
{{ request.GET.파라미터명}} : get방식 파라미터값 호출
{{ param }} : url ? 뒤의 쿼리 출력
{{ object.get_컬럼명_display }} : 해당 컬럼이 choice일때 value값 출력
{{ request.path }} : url (without GET parameters)
{{ request.get_full_path }} : url (with GET parameters)
{% for shop in shop_list %}
<tr>
<td>{{ shop.id }}</td>
<td>{{ shop.get_category_display }}</td>
</tr>
{% endfor %}
3. 필터
- default
{{ value | default:'nothing' }}
- length : value의 길이
- intcomma : 3자리 구분 콤마 삽입
① settings.py
INSTALLED_APPS = [
...
'django.contrib.humanize',
...
]
② template.html
{* load humanize *}
...
...
{* object.name|intcomma *}
● Template 확장 (= 상속)
공통된 Base 템플릿을 바탕으로 변경되는 Template을 확장시키는 방식
- 형식 :
{% block 블럭명 %}
{% endblock 블럭명 %}
<!-- polls/template/base.html -->
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% include 'base/header.html' %}
{% block content %}
{% endblock content %}
{% include 'base/footer.html' %}
</body>
</html>
<!-- index.html -->
{% extends 'base.html' %}
{% block content %}
<h1>{{message}}</h1>
{% endblock content %}
→ extends 경로는 프로젝트명/templates 이하부터 적음
<Django Official Documentation>
docs.djangoproject.com/en/3.1/ref/templates/builtins/#std:templatefilter-default