백엔드 공부/Django
[Django] 장고 템플릿 태그 및 user관련 템플릿 문법
박현준(-ㅅ-)
2023. 2. 4. 20:15
Template Language
알아볼 템플릿 문법은 총 2가지입니다.
1. 템플릿 태그
2. user관련 문법
본격적으로 포스트를 들어가기전에 예시를 돕기 위한 설정을 하나 세우겠습니다.
"게시판 프로젝트에서 카테고리에 다양한 게시판들을 나열할 기능을 구현할 계획"
{% for in %} ... {% endfor %} 템플릿 태그
board_app/models.py
class BoardName(models.Model):
board_name = models.CharField(max_length=50)
저는 board_name에 5개정도 데이터를 넣었습니다.
모두 아시겠지만 모델을 설정하고 migration화를 진행해주셔야합니다.
board_app/views.py
from .models import BoardName
def index(request):
data = BoardName.objects.all()
return render(request, 'board_app/index.html', {'value': data})
핵심이 되는 것은 사용할 모델을 임폴트하고 .objects.all()로 모든 데이터를 저장하는 과정입니다.
그 다음 딕셔너리 형태로 보내는 것이죠.
board_app/index.html
{% for i in value %}
<li>
<a href="#">{{ i.board_name }}
</a>
</li>
{% endfor %}
이제 html에서 {% for in %} 문법을 사용해 주는 것입니다. 파이썬 문법 그대로 이해하시면 됩니다. value에 있는 값 개수만큼 반복하는 거죠. 제가 5개를 저장해 놓았으니 5번 반복합니다.
{% if %} ... {% elif %} ... {% else %} ... {% endif %} 템플릿 태그
추가로 if에 관한 문법도 사용할 수 있습니다.
{% if i.Count > 100 %}
<p>조회 카운팅이 10이상 입니다.</p>
{% elif i.Count > 60 %}
<p>조회 카운팅이 60이상 100미만 입니다.</p>
{% else %}
<p>조회 카운팅이 60미만 입니다.</p>
{% endif %}
이런 형식으로 사용할 수 있습니다.
항상 for이던 if던 {% endfor %}, {% endif %} 이렇게 마무리 닫기 해주셔야합니다.
그 다음은 user에 대해 간단한 템플릿 문법을 알아보겠습니다.
현재 접속중인 USER의 아이디(username)을 가져오는 방법
html문서에 작성
{{ user.get_username }}