
Template File은 다른 동일한 이름의 리소스와의 구분하기 위해서 [app_name]/templates/[app_name]의 디렉토리 하위에 존재한다.
- detail.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>상세 페이지</title>
</head>
<body>
<h1>{{ question.question_text}}</h1>
{% if error_message %}<p><strong>{{ error_message }}</strong></p> {% endif %}
<form action="{% url 'polls:vote' question.id %}" method="post">
{% csrf_token %}
{% for choice in question.choice_set.all %}
<input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}"/>
<label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br />
{% endfor %}
<input type="submit" value="투표하기">
</form>
</body>
</html>
-템플릿 변수
{{ variable }}
{{}} 문자로 변수를 감싸 해당 변수값을 출력할 수 있다. 변수명은 일반 프로그램밍의 변수 조건과 유사하게 문자, 숫자, 밑줄을 사용하여 이름을 정의할 수 있다.
장고의 템플릿 시스템에서 도트(.)는 파이썬 언어와는 조금 다르다. 템플릿 문법에서 도트(.)를 만나면 장고는 다음의 순서를 따른다.
ex) book.name
- 사전 타입인지 확인 book['name']
- 속성 값인지 확인 book.name
- 리스트인지 확인 book[name]
-템플릿 필터
{{ name|lower}}
name의 변수값을 소문자로 변환하여 출력
{{ text|escape|linebreaks }}
text 변수값 중에서 특수 문자를 제거하고 , 그 결과에 <p>를 붙여준다.
{{ bio|truncatewords:30 }}
bio의 변수값 중에서 앞에 30개의 단어만 보여주고, 줄 바꿈 문자는 모두 제거
{{ list|join:" // " }}
필터의 인자에 빈칸이 있는 경우 따옴표로 묶어준다. list가 ['a','b','c']라면 결과는 "a // b // c"가 된다.
{{ value|default:"nothing"}}
value 변수값이 False이거나 없는 경우 "nothing"으로 출력
{{ value|length }}
value 값의 길이를 반환한다. 변수 값이 스트링이나 리스트인 경우도 가능하다.
{{ value|striptags }}
value 변수값에서 HTML 태그를 모두 없애줍니다. 그러나 완벽하지 않다.
{{ value|pluralize }}
value 변수값이 복수명 접미사 s를 붙여준다.
{{ value|pluralize:"es" }} 또는 {{ value|pluralize:"ies" }}
value 변수값이 복수이면 접미사 es 또는 ies를 붙여준다.
{{ value|add:"2" }}
변수에 더하기를 할 수 있습니다. 데이터 타입에 따라 결과가 다르므로 주의해야 한다.
{{ first|add:second }}
- first="python", second="django"라면 결과는 "pythondjango"
- first=[1,2,3], second=[4,5,6] 이라면 결과는 [1,2,3,4,5,6]
- first="5", second="10"이라면 결과는 15
출처: 한빛미디어, Django로 배우는 쉽고 빠른 웹 개발 파이썬 웹 프로그래밍
'Django' 카테고리의 다른 글
| 12. Template 주석, HTML 이스케이프 (0) | 2021.04.08 |
|---|---|
| 11. Template Tag(템플릿 태그) (0) | 2021.04.08 |
| 9. View 구성 - 함수형 뷰 구성 (0) | 2021.04.08 |
| 8. URLconf - URL 정의 (Path Converter, 정규표현식) (0) | 2021.04.08 |
| 7. Model - 데이터베이스 정의 및 Admin 페이지에 등록하기 (0) | 2021.04.08 |