python_fullstack - Django 프레임워크 (3) - Django 템플릿 언어

Django Template Language 템플릿 언어


라벨


1. 일반 변수

  • 일반 변수용{{ }}
  • 변수 이름은 숫자, 알파벳, 밑줄로 구성
  • 시.템플릿 언어에서 대상에 해당하는 속성 값을 가져오는 데 사용합니다
  • 예제
  • {#  variable  #}
    {{ variable.0 }}
    {#  dic key  #}
    {{ dic.key }}
    {#  obj_list attr  #}
    {{ obj_list.0.attr }}
    {#   #}
    {{ obj_list.0.method }}

    2. 논리적 판단

  • 논리적 판단용{% %}
  • for
  • 문법: {% for item in item_list %}...{% empty %}...{% endfor %}
  • 작용: 순환itemlist, item 값이 비어 있거나 존재하지 않으면 empty의 코드를 실행합니다. endfor로 순환을 끝내는 것을 기억하십시오
  • 일반적인 for 순환 매개 변수:
    Variable
    Description forloop.counter
    현재 순환하는 인덱스 값 (1부터)forloop.counter0
    현재 루프의 인덱스 값(0부터 시작)forloop.revcounter
    현재 순환의 역순 인덱스 값 (1부터)forloop.revcounter0
    현재 순환의 역순 인덱스 값 (0부터)forloop.first
    현재 순환은 첫 번째 순환입니까? (부울 값)forloop.last
    현재 순환이 마지막 순환입니까? (부울 값)forloop.parentloop
    이 층 순환의 외층 순환

  • if
  • 문법: {% if some_condition %}...{% elif other_condition %}...{% endif %}
  • 작용: 조건판단, 엔디프 종료조건판단
  • 을 써야 한다는 것을 명심하라
  • if문장과 결합된 판단 키워드and 、or、==、>、=、in、not in、is、is not
  • with
  • 문법: {% with new_variable = old_variable %}.....{% endwith %}
  • 작용: 중간 변수 정의
  • csrf_token
  • 문법: 페이지의 모든form표에 {% csrf_token %}
  • 작용: 전역 요청 위조 보호에 사용
  • 참고 사항
  • 문법: {# note #}

  • 3. 모판 시스템

  • 상속
  • 문법: {% extends 'base.html' %}
  • 작용: 하위 페이지에서 페이지 맨 위에 아래의 문법을 사용하여 모판을 계승한다

  • 블록 블록 블록
  • 문법: {% block block_name %}...{% endblock %}
  • 작용: 하위 페이지에서 모판의 Block 이름을 정의하여 모판의 상응하는 내용을 대체한다
  • 구성 요소
  • 문법: {% include 'subassembly.html' %}
  • 작용: 자주 사용하는 고정된 HTML 내용을 단독 파일에 저장하고 필요한 곳에 상기 문법으로 가져와 사용할 수 있음

  • 4. 정적 파일 관련

  • 정적 파일 디렉토리 참조
  • 문법: {% load static %}
  • 역할: 템플릿 언어를 통해 정적 폴더 디렉터리 이름 인용
  • 예:
    {% load static %}
    <img src="{% static 'images/sample.jpg' %}">img>
  • 정적 파일 디렉토리 참조
  • 구문: {% get static prefix%}
  • 역할: 템플릿 언어를 통해 정적 폴더 디렉터리 이름 인용
  • 예:
    {% load static %}
    <img src="{% get_static_prefix %}images/sample.jpg">img>

  • 5, 사용자 정의 단순 tag

  • 역할: 사용자 정의 탭 가능, 등록 후 사용 가능
  • 사용자 정의 단순 tag 절차 (사용자 정의 Filter와 유사하지만 더 유연한 파라미터를 수신합니다)
  • 프로젝트 app에templatetags라는 폴더를 만듭니다
  • templatetags의 폴더에 사용자 정의py 파일을 만듭니다. 예를 들어:customsimpletag.py
  • custom_simpletag.py에서 사용자 정의 단순 태그를 작성합니다. 예를 들어:
    from django import template
    register = template.Library()
    
    @register.simple_tag(name="my_simpletag")
    def add_simpletag(a,b,c): #  
    return "{} + {} + {}".format(a, b, c)
  • 사용자 정의 단순 사용tag 전에 HTML 페이지에서py 파일 가져오기
    {% load custom_simpletag %}
    {% my_simpletag "1" "2" "3" %}

  • 6、사용자 정의inclusiontag

  • 작용: html 코드 세션 되돌리기
  • 사용자 정의inclusiontag의 단계
  • 프로젝트 app에templatetags라는 폴더를 만듭니다
  • templatetags의 폴더에 사용자 정의py 파일을 만듭니다. 예를 들어:custominclusiontag.py
  • custom_inclusiontag.py에서 사용자 정의inclusiontag를 작성합니다. 예를 들어:
    from django import template
    register = template.Library()
    
    @register.inclusion_tag('inclusion_tag.html')
    def my_inclusiontag(n):
    n = 1 if n < 1 else int(n)
    data = [" {} ".format(i) for i in range(1, n+1)]
    return {"data": data}
  • templates 폴더에 방금 등록한inclusion 만들기tag.html 파일
    <ul>
      {% for choice in data %}
      <li>{{ choice }}li>
      {% endfor %}
    ul>
  • 사용자 정의 my 사용inclusiontag 앞에서 HTML 페이지에서py 파일 가져오기
    {% load custom_inclusiontag %}
    {% my_inclusiontag 10 %}

  • 필터 필터


    1. 내장 필터

  • 문법: {{ value|filter_name:args }}, 주의: 파이프 문자의 앞뒤에 빈칸이 없음
  • default
  • 문법: {{ value: default: " "}}
  • 작용:value값이 전달되지 않으면 사용자 정의 내용을 표시
  • length
  • 문법: {{{value|length}
  • 작용:value의 길이
  • 를 되돌려줍니다
  • filesizeformat
  • 문법: {{ value|filesizeformat }}
  • 작용:value를'사람이 읽을 수 있는'파일 크기 형식으로 포맷
  • slice
  • 문법: {{value|slice:"start:end"}}
  • 작용: 절편
  • date
  • 문법: {{ value|date:"Y-m-d H: i:s"}}
  • 작용: 시간 형식의value를 사용자 정의 포맷
  • safe
  • 문법: {{value|safe}}
  • 작용: Django가 HTML 라벨과 JS 등 문법 라벨에 대한 자동 전의를 취소하고 삽입된 HTML이나 JS가 안전하고 전의할 필요가 없다고 판단
  • truncatechars
  • 문법: {{{value|truncatechars:num}
  • 역할: 문자열 문자가 지정된 문자 수보다 많으면 잘립니다.잘린 문자열은 번역 가능한 줄임표 시퀀스("...")로 끝납니다.num 매개 변수는 절단된 문자 수를 가리킨다

  • 2. 필터 필터 사용자 정의

  • 필터를 사용자화하려면
  • 프로젝트 app에templatetags라는 폴더를 만듭니다
  • templatetags의 폴더에 사용자 정의py 파일을 만듭니다. 예를 들어:customfilter.py
  • custom에서filter.py에서 사용자 정의 필터를 작성합니다. 예를 들어:
    from django import template
    register = template.Library()
    
    @register.filter(name="my_filter")
    def my_filter(value, arg): # 
    return value.replace(arg, "")
  • 사용자 정의 Filter를 사용하기 전에 HTML 페이지에서py 파일을 가져오십시오
    {% load custom_filter %}
    {{ variable|my_filter:"0" }}

  • 3. 참조 링크

  • 공식 링크https://docs.djangoproject.com/en/1.11/ref/templates/language/
  • 공식 링크 - 내장 레이블https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#built-in-tag-reference
  • 공식 링크 - 내장 필터https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#built-in-filter-reference
  • 추가 링크http://baijiahao.baidu.com/s?id=1578789736945590676&wfr=spider&for=pc https://code.ziqiangxuetang.com/django/django-template2.html
  • 좋은 웹페이지 즐겨찾기