11:django 템플릿 내장 레이블

18929 단어 django
내장 레이블
autoescape
현재 자동 전환 동작을 제어합니다. on과off 두 가지 옵션이 있습니다.
{% autoescape on %}

    {{ body }}

{% endautoescape %}

block
하위 템플릿에서 덮어쓸 수 있는 블록을 정의합니다(이전 섹션).
comment
주석, {% comment%}과 {% endcomment%} 사이의 내용이 주석으로 해석됨
crsf_token
CSRF 공격 방지(사이트 간 위조 요청) 레이블
cycle
주어진 문자열이나 변수를 순환해서 혼용할 수 있습니다
{% for o in some_list %}

    <tr class="{% cycle 'row1' rowvalue2 'row3' %}">

        ...

    </tr>

{% endfor %}

주의해야 할 것은 이곳의 변수의 값은 기본적으로 자동 전의가 아니다. 당신의 변수를 믿거나 강제 전의의 방법으로
{% for o in some_list %}

    <tr class="{% filter force_escape %}{% cycle rowvalue1 rowvalue2 %}{% endfilter %}">

        ...

    </tr>

{% endfor %}

어떤 경우 외부 인용 순환의 다음 값을 순환시키려면 as로 cycle 탭에 이름을 붙여야 합니다. 이 이름은 현재 순환의 값을 대표하지만, cycle 탭에서 이 변수로 순환의 다음 값을 얻을 수 있습니다.
<tr>

    <td class="{% cycle 'row1' 'row2' as rowcolors %}">...</td>

    <td class="{{ rowcolors }}">...</td>

</tr>

<tr>

    <td class="{% cycle rowcolors %}">...</td>

    <td class="{{ rowcolors }}">...</td>

</tr>

렌더링의 결과는 다음과 같습니다.
<tr>

    <td class="row1">...</td>

    <td class="row1">...</td>

</tr>

<tr>

    <td class="row2">...</td>

    <td class="row2">...</td>

</tr>

그러나cycle 라벨이 정의되면 기본적으로 순환의 첫 번째 값을 사용합니다. 순환을 정의하고 싶지 않을 때 (예를 들어 부모 템플릿에서 변수를 정의하여 계승하기 편리하도록 합니다.)너는cycle의silent 매개 변수를 사용할 수 있다. (silent는cycle의 마지막 매개 변수이고 silent도 계승하는 특징을 가지고 있다. 비록 두 번째 줄의cycle에silent 매개 변수가 없지만rowcoclors는 앞에서 정의한silent 매개 변수를 포함하기 때문에 두 번째cycle도silent 순환의 특징을 가지고 있다.
{% cycle 'row1' 'row2' as rowcolors silent %}

{% cycle rowcolors %}

debug
현재 상하문과 가져온 모듈을 포함한 모든 디버그 정보를 출력합니다
extends
현재 템플릿이 부모 템플릿을 계승했다는 것을 나타낸다
부모 템플릿 이름을 포함하는 변수나 문자열 상수를 수락합니다
filter
사용 가능한 필터로 내용을 필터하면 필터 간에 서로 (호출)
{% filter force_escape|lower %}

    This text will be HTML-escaped, and will appear in all lowercase.

{% endfilter %}

firstof
목록의 첫 번째 사용 가능한 변수나 문자열을 되돌려줍니다.firstof의 변수는 자동으로 바뀌지 않습니다.
{% firstof var1 var2 var3 "fallback value" %}

for
for 순환, 뒤에 Reversed 매개 변수를 추가하여 역순 목록을 반복할 수 있습니다
{% for obj in list reversed %

너는 또한 목록의 데이터에 근거하여 for문장을 쓸 수 있다. 예를 들어 사전 형식에 대한 데이터
{% for key, value in data.items %}

    {{ key }}: {{ value }}

{% endfor %}

for 순환에는 일련의 유용한 변수가 있다
변량
묘사
forloop.counter
현재 순환 색인, 1부터 시작
forloop.counter0
현재 순환 인덱스, 0부터 시작
forloop.revcounter
현재 순환하는 인덱스 (뒤에서 계산), 1부터 시작
forloop.revcounter0
현재 순환하는 인덱스 (뒤에서 계산), 0부터 시작
forloop.first
하면, 만약, 만약...
forloop.last
하면, 만약, 만약...
forloop.parentloop
네스트된 루프의 경우 외부 루프를 나타냅니다.
for...empty
for 순환의 매개 변수 - 목록이 비어 있으면 empty의 내용을 실행합니다
<ul>

{% for athlete in athlete_list %}

    <li>{{ athlete.name }}</li>

{% empty %}

    <li>Sorry, no athlete in this list!</li>

{% endfor %}

<ul>

if
조건문
{% if athlete_list %}

    Number of athletes: {{ athlete_list|length }}

{% elif athlete_in_locker_room_list %}

    Athletes should be out of the locker room soon!

{% else %}

    No athletes.

{% endif %}

부울 연산자
if 탭에서 and, or, not 세 개의 볼 조작부호를 사용할 수 있습니다
==,!=,<,>,<=,>=,in, not in 등의 연산자
이 조작부호들은 일일이 상세하게 말하지 않고 일목요연하다
if 탭에서 이 조작부호들은 복잡한 표현식으로 만들 수 있다
ifchange
순환의 마지막에 값이 바뀌었는지 검사하기
그래서 이 라벨은 실제로 순환하는 데 두 가지 용법이 있다.
  • 매개 변수를 받아들이지 않았을 때ifchange 탭의 내용이 이전에 비해 변화가 있었는지, 변화가 있을 때 효과가 발생했는지
  • 하나 이상의 매개 변수를 받아들일 때 하나 이상의 매개 변수가 변할 때 변화가 있을 때 효력이 발생한다
  • ifchange에else 라벨이 있을 수 있습니다
    {% for match in matches %}
    
        <div style="background-color:
    
            {% ifchanged match.ballot_id %}
    
                {% cycle "red" "blue" %}
    
            {% else %}
    
                grey
    
            {% endifchanged %}
    
        ">{{ match }}</div>
    
    {% endfor %}

    ifequal
    두 파라미터가 같을 때만 블록의 내용을 출력할 수 있으며else 출력에 맞출 수 있다
    {% ifequal user.username "adrian" %}
    
        ...
    
    {% endifequal %}

    ifnotequal
    ifequal과 유사하다
    include
    템플릿을 불러오고 현재 상하문 (include 이 템플릿의 상하문) 으로 렌더링하여 변수나 문자열 파라미터를 받아들인다
    물론 당신도include에 매개 변수를 전달할 수 있습니다
    {% include "name_snippet.html" with person="Jane" greeting="Hello" %}

    전달된 매개 변수만 받아들이고 현재 템플릿의 상하문을 받아들이지 않을 때 only 매개 변수를 사용할 수 있습니다
    {% include "name_snippet.html" with greeting="Hi" only %}

    load
    사용자 정의 템플릿 탭 집합을 불러옵니다. 별도의 설명을 보십시오.
    now
    현재 시간 날짜를 표시하고 포맷 문자열의 매개 변수를 수락합니다
    It is {% now "jS F Y H:i" %}

    매개변수에는 정의된 참조 매개변수가 있습니다. DATEFORMAT(월일년), DATETIMEFORMAT, SHORTDATE_FORMAT(월/일/년) or SHORTDATETIME_FORMAT(월/일/년/시)
    regroup
    공통된 속성을 통해 하나의 목록의 비슷한 대상을 다시 그룹으로 나누고, 당신이 가지고 있는 도시 (city) 의 목록에 가입하는 것은 다음과 같다.
    cities = [
    
        {'name': 'Mumbai', 'population': '19,000,000', 'country': 'India'},
    
        {'name': 'Calcutta', 'population': '15,000,000', 'country': 'India'},
    
        {'name': 'New York', 'population': '20,000,000', 'country': 'USA'},
    
        {'name': 'Chicago', 'population': '7,000,000', 'country': 'USA'},
    
        {'name': 'Tokyo', 'population': '33,000,000', 'country': 'Japan'},
    
    ]

    국가country라는 속성에 따라 그룹을 다시 나누고 싶으면 아래의 결과를 얻을 수 있습니다. 그러면 이렇게 할 수 있습니다.

  • India
  • Mumbai: 19,000,000
  • Calcutta: 15,000,000


  • USA
  • New York: 20,000,000
  • Chicago: 7,000,000


  • Japan
  • Tokyo: 33,000,000

  • {% regroup cities by country as country_list %}
    
    
    
    <ul>
    
    {% for country in country_list %}
    
        <li>{{ country.grouper }}
    
        <ul>
    
            {% for item in country.list %}
    
              <li>{{ item.name }}: {{ item.population }}</li>
    
            {% endfor %}
    
        </ul>
    
        </li>
    
    {% endfor %}
    
    </ul>

    주의해야 할 것은regroup은 다시 정렬하지 않습니다. 따라서city가regroup 이전에country에 따라 정렬되었는지 확인하십시오. 그렇지 않으면 원하는 결과를 얻을 수 없습니다. dictsort 필터로 정렬할 수 있는지 확인하지 못하면
    {% regroup cities|dictsort:"country" by country as country_list %}

    spaceless
    html 탭 사이의 빈칸을 제거합니다. 탭 사이의 빈칸을 주의하세요. 탭과 내용 사이의 빈칸은 삭제되지 않습니다.
    {% spaceless %}
    
        <p>
    
            <a href="foo/">Foo</a>
    
        </p>
    
    {% endspaceless %}

    결과
    <p><a href="foo/">Foo</a></p>

    ssi
    페이지에서 주어진 파일의 내용을 출력합니다
    {% ssi /home/html/ljworld.com/includes/right_generic.html %}

    parsed 파라미터를 사용하면 입력한 내용을 하나의 템플릿으로 사용할 수 있고 현재 템플릿의 상하문을 사용할 수 있습니다
    {% ssi /home/html/ljworld.com/includes/right_generic.html parsed %}

    url
    절대 경로의 인용 (도메인 이름이 없는 url) 을 되돌려줍니다. 첫 번째 인자는 보기 함수의 이름입니다. 그리고 urls 프로필에서 보기 함수에 대응하는 url를 찾으십시오.
    widthratio
    이 라벨은 주어진 값과 최대 값의 비율을 계산한 다음에 이 비율을 상수와 곱해서 최종 결과를 되돌려줍니다
    <img src="bar.gif" height="10" width="{% widthratio this_value max_value 100 %}" />

    with
    더 간단한 변수 이름으로 복잡한 변수 이름을 캐시합니다
    {% with total=business.employees.count %}
    
        {{ total }} employee{{ total|pluralize }}
    
    {% endwith %}

    비록 처음에는 이랬지만, 너는 모두 이랬을 필요는 없다, 하하
    {% with alpha=1 beta=2 %}
    
        ...
    
    {% endwith %}

    django 내장 라벨은 여기까지 한번 보여드렸습니다. 하하.
    p

    좋은 웹페이지 즐겨찾기