
🌈 Template Language
🔥 Template 태그 : {% 문법 %}
🔥 Template 변수 : {{ 변수 }}
🔥 Template 필터 : {{ 변수|옵션 }}
참고 : https://docs.djangoproject.com/en/3.2/ref/templates/builtins/
1) {% for in %} ~ {% endfor %}
탬플릿 태그을 통해 python 문법의 if, else, for문을 사용할 수 있고,, extends, block, include 등을 통해 다른 템플릿을 상속받거나 포함시킬 수 있답니다.
{{forloop.counter}}는 반복문안에서 사용하면 반복 횟수만큼 count해줍니다.
🔍 {{forloop.counter}} : 1부터 반복횟수만큼 count
🔍 {{forloop.counter0}} : 0부터 반복횟수만큼 count
🔍 {{forloop.revcounter}} : 전체 길이로 시작해서 1까지 count
🔍 {{forloop.revcounter0}} : 전체 길이로 시작해서 0까지 countdef for_loop(request): post_list = Post.objects.all context = {'post_list': post_list} return render(request, 'boards/for_loop.html', context)
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
</head>
<body>
<h1>Template Language!</h1>
<p>{{post_list}}</p>
{% for i in post_list %}
<div>번호 :{{forloop.counter}}번째 data</div>
<div>제목 :{{i.title}}</div>
<div>조회수 :{{i.hit}}</div>
<div>내용 :{{i.content}}</div>
<br/>
{% endfor %}
</body>
</html>

2) {% if %} .. {% elif %} .. {% else %} .. {% endif %}
- 탬플릿 태그를 통해 if, elif, else문도 아래 처럼 사용할 수 있어요!
{%load static%} <!DOCTYPE html> <html lang="en"> <head> <title>Document</title> </head> <body> <h1>Template Language!</h1> <h1>Template Language!</h1> <p>{{post_list}}</p> {% for i in post_list %} <div>번호 :{{forloop.counter}}번째 data</div> <div>제목 :{{i.title}}</div> {% if i.hit==0%} <div>조회수 :{{i.hit}}</div> {%else%} <div>조회수가 0 초과 입니다. :{{i.hit}}</div> {%endif%} <div>내용 :{{i.content}}</div> <br/> {% endfor %} </body> </html>

- view에서 변수에 데이터를 넣어 템플릿으로 전달하면 html 파일 안에서 해당 변수를 쉽게 사용할 수 있어요. Dict형, list형 모두 전달 가능 합니다.
<!DOCTYPE html> <html lang="en"> <head> <title>Document</title> </head> <body> <h1>Template Language!</h1> <p>{{post_list}}</p> {% for i in post_list %} <div>번호 :{{forloop.counter}}번째 data</div> <div>제목 :{{i.title}}</div> {% if i.hit == 0 %} <div>조회수 :{{i.hit}}</div> {%else%} <div>조회수가 0 초과 입니다. :{{i.hit}}</div> {%endif%} <div>내용 :{{i.content}}</div> <br/> {% endfor %} <p> <div>price 출력 : {{price}}</div> <div>l의 0번째 값은 : {{price.0}}</div> <div>l의 1번째 값은 : {{price.1}}</div> <div>l의 2번째 값은 : {{price.2}}</div> </p> <p> <div>name 출력 : {{name}}</div> <div>name의 key(name) 값은 : {{name.name}}</div> <div>name의 key(age)) 값은 : {{name.age}}</div> <div>name의 key(location) 값은 : {{name.location}}</div> <div>name의 key(isman) 값은 : {{name.isman}}</div> </p> </body> </html>

Django Templates에서 lorem 사용하는 방법은 아래와 같아요:)
🔍 {{ lorem [count][mehod][random] }}{%load static%} <!DOCTYPE html> <html lang="en"> <head> <title>Document</title> </head> <body> <h1>Template Language!</h1> {% with value='hello Django'%} <h4>{{value}}</h4> {% endwith %} {% lorem %} <!-- 👈 lorem 생성 --> {% lorem 3 p%} <!-- 👈 lorem 문장(p)을 3개 생성 --> {% lorem 2 w random %} {% lorem 5 w random %} <!-- 👈 lorem 단어(w)을 5개 랜덤 생성 --> </body> </html>내장 템플릿 필터
https://himanmengit.github.io/django/2018/02/23/Built-In-Template-Filter.html
https://velog.io/@jewon119/Django-%EA%B8%B0%EC%B4%88-Template-Language