The Definitive Guide To Django 2 학습노트(8) 제4장 템플릿(4) 기본 템플릿 레이블 및 필터
10204 단어 django
다음 섹션에서는 일반적인 Django 태그에 대해 간략하게 설명합니다.
if/else
{%if%} 탭은 변수 값을 테스트합니다. 결과가true이면 {%if%}와 {%endif%} 사이의 모든 것을 보여 줍니다. 예를 들어 다음과 같습니다.
{% if today_is_weekend %}
<p>Welcome to the weekend!</p>
{% endif %}
An {% else %} tag is optional:
{% if today_is_weekend %}
<p>Welcome to the weekend!</p>
{% else %}
<p>Get back to work.</p>
{% endif %}
{%if%} 탭은 and, or, not를 받아들여 다변수를 테스트합니다. 아래의 예를 참고하십시오.
{% if athlete_list and coach_list %}
Both athletes and coaches are available.
{% endif %}
{% if not athlete_list %}
There are no athletes.
{% endif %}
{% if athlete_list or coach_list %}
There are some athletes or some coaches.
{% endif %}
{% if not athlete_list or coach_list %}
There are no athletes or there are some coaches.
{% endif %}
{% if athlete_list and not coach_list %}
There are some athletes and absolutely no coaches.
{% endif %}
{%if%} 탭은 and와 or가 같은 탭 문장에 동시에 나타나는 것을 받아들이지 않습니다. 왜냐하면 잘못된 뜻을 일으킬 수 있기 때문입니다.예를 들면 다음과 같습니다.
{% if athlete_list and coach_list or cheerleader_list %}
괄호는 여기에서 지원되지 않습니다. 필요하면 논리를 템플릿의 바깥쪽에 놓고 지정한 템플릿 변수를 결과로 내보낼 수 있습니다.또는 중첩 {%if%} 태그:
{% if athlete_list %}
{% if coach_list or cheerleader_list %}
We have athletes, and either coaches or cheerleaders!
{% endif %}
{% endif %}
같은 조작부호를 여러 번 사용하는 것은 가능하지만, 동시에 여러 개의 다른 조작부호를 사용하는 것은 불가능하다.다음 문은 유효합니다.
{% if athlete_list or coach_list or parent_list or teacher_list %}
{%elif%} 탭이 없습니다. 끼워 넣은 {%if%} 탭으로 같은 일을 완성합니다.
{% if athlete_list %}
<p>Here are the athletes: {{ athlete_list }}.</p>
{% else %}
<p>No athletes are available.</p>
{% if coach_list %}
<p>Here are the coaches: {{ coach_list }}.</p>
{% endif %}
{% endif %}
모든 {%if%}이 {%endif%}에 대응하는지 확인하십시오. 그렇지 않으면 Django는TemplateSyntaxError의 이상을 던집니다.
for
{%for%} 시퀀스에 있는 모든 항목을 순환할 수 있습니다. 형식은 for X in Y이고, Y는 옮겨다니는 집합이며, X는 변수 이름입니다.매번 순환할 때마다 템플릿 시스템은 {%for%}와 {%endfor%}의 내용을 보여 줍니다.
예를 들면 다음과 같습니다.
<ul>
{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% endfor %}
</ul>
컬렉션을 반전할 수도 있습니다.
{% for athlete in athlete_list reversed %}
...
{% endfor %}
네스트할 수도 있습니다.
{% for athlete in athlete_list %}
<h1>{{ athlete.name }}</h1>
<ul>
{% for sport in athlete.sports_played %}
<li>{{ sport }}</li>
{% endfor %}
</ul>
{% endfor %}
자주 사용하는 모드 중 하나는 순환하기 전에 리스트의 크기를 검사하고, 리스트가 비어 있으면 특수한 텍스트를 출력합니다
{% if athlete_list %}
{% for athlete in athlete_list %}
<p>{{ athlete.name }}</p>
{% endfor %}
{% else %}
<p>There are no athletes. Only computer programmers.</p>
{% endif %}
이 방법은 너무 자주 사용되기 때문에, for 탭은 선택할 수 있는 {% Empty%} 옵션을 지원하여 사용자 정의 텍스트를 출력할 수 있습니다.예를 들면 다음과 같습니다.
{% for athlete in athlete_list %}
<p>{{ athlete.name }}</p>
{% empty %}
<p>There are no athletes. Only computer programmers.</p>
{% endfor %}
for 탭은break,countinue를 지원하지 않습니다.
{%for%} 탭에서 forloop 변수에 접근할 수 있습니다. 이 변수는 몇 가지 자주 사용하는 속성이 있습니다.
1.forloop.counter: 몇 번 순환했는지 기록하는 데 사용
2.forloop.counter0:forloop과 유사합니다.counter0, 0에서 시작하는 것에 불과합니다.
3.forloop.revcounter: 아직 옮겨다니지 않은 항목의 수를 기록하는 데 사용합니다
4.forloop.revcounter 0: revcounter와 유사하지만 계수는 0에서 시작합니다
5.forloop.first: 첫 번째 항목인지 여부를 표시하는 부울 값
6.forloop.마지막 항목인지 여부를 표시하는 데 사용되는 부울 값
ifequal/ifnotequal
{%ifequal%} 탭은 두 값을 비교합니다. 만약 그들이 같다면 {%ifequal%}와 {%endifequal%} 사이의 모든 코드를 표시합니다.
{% ifequal user currentuser %}
<h1>Welcome!</h1>
{% endifequal %}
매개 변수는 하드 인코딩일 수 있기 때문에 다음 예는 모두 유효합니다.
{% ifequal section 'sitenews' %}
<h1>Site News</h1>
{% endifequal %}
{% ifequal section "community"%}
Community{% endifequal %}
{%if%}와 유사하며 the {%ifequal%} 탭도 옵션 {%else%}을 지원합니다{% ifequal section 'sitenews' %}
<h1>Site News</h1>
{% else %}
<h1>No News Here</h1>
{% endifequal %}
템플릿 변수, 문자, 정수 및 부동 소수점 유형만 비교 매개변수로 사용할 수 있습니다. 다음은 유효한 예입니다.{% ifequal variable 1 %}
{% ifequal variable 1.23 %}
{% ifequal variable 'foo' %}
{% ifequal variable "foo" %}
다른 종류인 List, 사전, 볼 종류는 {%ifequal%}의 매개 변수로 사용할 수 없습니다.{% ifequal variable True %}
{% ifequal variable [1, 2, 3] %}
{% ifequal variable {'key': 'value'} %}
잘못된 매개변수입니다.True 또는 False가 맞는지 테스트하려면 {%ifequal%}
메모
{##}을 사용하고, 여러 줄 주석은 {%comment%}과 {%endcoomment%}를 사용합니다.
필터
템플릿 필터링은 이들을 표시하기 전에 변수 값을 변경하는 가장 간단한 방법입니다.예를 들어: {{name|lower}, 이것은name의 값을 소문자로 바꾸고 표시합니다.
필터는 여러 개의 연속으로 사용할 수 있습니다.{{ my_list|first|upper }}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트
환영 친구,
이것은 우리의 새로운 블로그입니다.
이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다.
이 웹사이트는 회원가입 및 로그인이 가능합니다.
로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
{% ifequal section 'sitenews' %}
<h1>Site News</h1>
{% else %}
<h1>No News Here</h1>
{% endifequal %}
{% ifequal variable 1 %}
{% ifequal variable 1.23 %}
{% ifequal variable 'foo' %}
{% ifequal variable "foo" %}
{% ifequal variable True %}
{% ifequal variable [1, 2, 3] %}
{% ifequal variable {'key': 'value'} %}
{{ my_list|first|upper }}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.