💡 오늘은 django templet 문법을 몇 가지 알아보았다.
엄청 많은 templet 문법이 있겠지만 주로 사용할 것 같은 문법을 사용해보고 익혀보는 시간이었다.
django template 변수
views.py에서 변수에 데이터를 담아 탬플릿으로 전달하면 해당 변수를 {{ }} 안에 넣어 사용할 수 있다.
views.py
def sample(request):
person = {'name':'paul', 'age':30, 'location':'seoul'}
return render(request, 'sample.html', {'person':person,)
html
<p>paul의 정보 : {{person}}</p>
<p>이름 : {{person.name}}</p>
<p>나이 : {{person.age}}</p>
<p>거주지 : {{person.location}}</p>
django template에서 for문 사용하는 방법
views.py의 함수에서 html을 render 할 때 context를 담아서 html로 전달한 후, html에서 {% %} 사이에 for문을 작성하고 닫는 태그인 {% endfor %}를 입력하여 for문을 끝낸다.
views.py
def food(request):
foods = [{"name":'족발',"price":30000},{"name":'햄버거',"price":5000},{"name":'치킨',"price":20000},{"name":'초밥',"price":15000}]
context = {
'foods': foods,
}
return render(request, "food.html", context)
food.html
{% for food in foods %}
<li>{{food.name}} {{food.price}}원</li>
{% endfor %}
django template에서 if문 사용하는 방법
for문과 마찬가지로 views.py 함수에서 context를 html로 담아서 전달하고, {% %}안에 조건문을 작성해서 사용한다.
views.py
def food(request):
foods = [{"name":'족발',"price":30000},{"name":'햄버거',"price":5000},{"name":'치킨',"price":20000},{"name":'초밥',"price":15000}]
context = {
'foods': foods,
}
return render(request, "food.html", context)
food.html
{% if food.price > 20000 %}
<h1>비싸다!!</h1>
{% elif food.price > 10000 %}
<h1>적당하다!!</h1>
{% else %}
<h1>저렴하다!!</h1>
{% endif %}
django tample의 form 태그
form 태그는 사용자로부터 할당된 데이터를 서버로 전송하는 역할을 하고 주로 action과 method를 많이 사용한다.
action은 이동할 페이지를 가리키고, method는 GET과 POST 중 사용자가 데이터를 서버로 전송할 때는 POST를 사용하고, 데이터를 불러오기만 할 때는 GET을 사용한다.
csrf_token
csrf_token은 CSRF 공격 방지를 위한 태그, 장고 내부적으로 CSRF 토큰값의 유효성을 검증한다.
form 태그 바로 밑 줄에 {% csrf_token %}을 입력하여 적용한다.