Django 내장 템플릿 필터

Built-in Template filter

add

  • 변수에 값을 추가함.
  • 두 값을 정수로 강제 변환. 정수로 변환이 되면 더하기가 됨.
# value가 4면 6이 나옴
{{ value|add:"2" }}
# first가 [1,2,3] second가 [4,5,6] = [1,2,3,4,5,6]이 나옴
{{ first|add:second }}

addslashes

  • 따옴표 앞에 슬래시를 추가함.
    # "I'm using Django" 는 "I\'m using Django"
    {{ value|addslashes }}
    

capfirst

  • 첫번째 문자를 대문자로 바꾼다. 문자가 아닌경우 효과가 없다.
    {{ value|capfirst }}
    

center

  • 주어진 폭의 필드에 중앙을 마춤
    # "     Django     "
    "{{ value|center:"15" }}"
    

cut

  • 인수로 주어진값을 모두 제거
    # 'ab c d' -> 'abcd'
    {{ value|cur:" " }}
    

date

  • 지정된 형식에 따라 날짜 형식을 지정
  • PHPdate() 함수와 비슷한 형식. 약간 다름
    # Wed 09 Jan 2008
    {{ value|date:"D d M Y" }}
    

default

  • 값이 False이면 기본값으로 사용
    # value가 빈 문자열이면 nothing를 사용
    {{ value|default:'nothing' }}
    

default_if_none

  • 값이 None인 경우 기본값을 사용
    # value가 None이면 nothing를 사용
    {{ value|default_if_none:"nothing" }}
    

dictsort

  • 딕셔너리 목록을 가져와 인수에 주어진 키별로 정렬된 목록을 반환
    {{ value|dictsort:"name" }}
    {{ value|dictsort:0 }}
    

dictsortreversed

  • dictsort와 기능은 같지만 역순으로 반환함.

divisibleby

  • 값을 인수로 나눌수 있는 경우 True를 반환
    # 값이 21이면 True
    {{ value|divisibleby:"3"}}
    

escape

  • 문자열의 HTML을 이스케이프 한다.
  • <&lt; 로 바꿈.
    # escape가 꺼져 있을때 escape 필터를 사용하여 켤 수 있다.
    {% autoescape off %}
    {{ title|escape }}
    {% endautoescape %}
    

escapejs

  • JavaScript 문자열에서 사용할 문자를 이스케이프 처리함.
    {{ value|escapejs }}
    

filesizeformat

  • 인수없이 사용하면 부동 소수점 숫자를 하나의 소수점 이하 자릿수로 반올림 하지만 표시할 소수점 자릿수가 있는 경우에만 해당.
  • 인수가 -면 표시할 소수점이 있으면 3자리 없으면 해당없음
  • 인수가 부호없는 정수 이면 항상 자리수를 표시
  • 기본값은 -1이다
    # 34.23234 -> 34.2
    # 34.0000 -> 34
    # 34.2600 -> 34.3
    {{ value|floatformat }}
    

force_escape

  • HTML 이스케이프를 문자열에 적용한다.
    # <p> HTML 태그를 적용
    {% autoescape off %}
    {{ body|linebreaks|force_escape }}
    {% endautoescape %}
    

get_digit

  • 숫자를 받으면 요청 된 숫자를 반환
  • 1은 오른쪽에서 첫번째 2는 오른쪽에서 두번째
    # 123456789 -> 8
    {{ value|get_digit:"2" }}
    

iriencode

  • IRIURL에 포함하기에 적합한 문자열로 바꿈.
  • URLASCII문자가 포함된 문자열을 사용하려는 경우에 필요
    # ?test=1&me=2 -> ?text=1&amp;me=2
    {{ value|ireiencode }}
    

join

  • pythonjoin 과 같이 문자열로 합칩니다.
    # ['a','b','c'] -> "a // b // c"
    {{ value|join:" // " }}
    

last

  • 값의 마지막 항목을 반환.
    # ['a','b','c','d'] -> d
    {{ value|last }}
    

length

  • 값의 길이를 반환.
    # abcd or ['a','b','c','d'] ->4
    {{ value|length }}
    

length_is

  • 값의 길이가 해당 인수랑 같으면 True 아니면 False
    # ['a','b','c','d'] or abcd -> True
    {{ value|length_is:"4" }}
    

linebreaks

  • 줄 바꿈을 적절한 HTML로 바꿈
    # joel\nis a slug. -> <p>joel<br /> is a slug</p>
    {{ value|linebreaks }}
    

linebreaksbr

  • 모든 개행 문자를 <br />로 바꿈
    # joel\nis a slug. -> joel<br /> is a slug
    {{ value|linebreaksbr }}
    

linenumbers

  • 줄번호가 있는 텍스트를 표시
    # one   -> 1.one
    # two   -> 2.two
    # three -> 3.three
    {{ value|linenumbers }}
    

ljust

  • 주어진 필드에서 왼쪽 정렬
    # Django -> "Django      "
    {{ value|ljust"10" }}
    

lower

  • 문자열을 소문자로 변환.
    # Totally LOVING this Album! -> totally loving this album!
    {{ value|lower }}
    

make_list

  • 리스트로 만들어 줌.
    # "Joel" -> ['J', 'o', 'e', 'l']
    # 123   -> ['1', '2', '3']
    {{ value|make_list }}
    

phone2numberic

  • 전화번호를 숫자로 만들어 줌.
    # 800-COLLECT -> 800-2655328
    {{ value|phone2numberic}}
    

pluralize

  • 값이 1이 아닐 경우 복수접미어 를 반환 기본값은 ‘s’
    You have {{ num_walruses }} walrus{{ num_walruses|pluralize:"es" }}
    

pprint

  • pprint.pprint() 디버깅을 위한 것.

random

  • 지정된 리스트로 부터 임의 항목을 리턴함.
    # [1,2,3,4] -> 2
    {{ value|random }}
    

rjusts

  • 필드에 대하여 오른쪽 정렬을 함
    # Django -> "     Django"
    "{{ value|rjust:"10" }}"
    

safe

  • 문자열을 출력하기 전에 더 이상 HTML 이스케이프가 필요하지 않은것으로 표시
    {{ var|safe|escape }}
    

safeseq

  • 시퀀스의 각 요소에 안정 필터를 적용 join과 같이 사용하면 유용함.
    {{ some_list|safeseq|join:", " }}
    

slice

  • 리스트의 일부를 되돌려줌. 파이썬과 비슷하게 작동
    #  ['a', 'b', 'c'] -> ['a', 'b']
    {{ some_list|slice:":2" }}
    

slugify

  • ASCII로 변환, 공백을 하이픈으로 변환. 영숫자, 밑줄 또는 하이픈이 아닌 문자를 제거, 소문자로 변환, 앞뒤 공백을 제거
    # "Joel is a slug" -> "joel-is-a-slug"
    {{ value|slugify }}
    

stringforamt

  • 문자열 혀식 지정자 인수에 따라 변수를 형식화 함
    # 10 -> 1.000000E+01
    {{ value|stringforamt:"E" }}
    

striptags

  • 모든 [X]HTML 태그를 삭제할수 있도록 한다.
    <b>Joel</b> <button>is</button> a <span>slug</span> -> "Joel is a slug"
    {{ value|striptags  }}
    

time

  • 주어진 형식에 따라 시간을 포맷함.
    # datetime.datetime.now() -> "01:23"
    {{ value|time:"H:i" }}
    

timesince

  • 해당 날짜 이후의 시간으로 날짜를 형식화
    # blog_date=2006/6/1 comment_date=2006/6/1 08:00 -> 08:00
    {{ blog_date|timesince:comment_date }}
    

timeuntil

  • 현재 부터 주어진 날짜 또는 날짜 시간까지의 시간을 측정
    # 오늘이 2006/6/1 confrerence_Date=2006/6/29 -> 4주
    {{ confrerence_Date|timeuntil:from_date }}
    

title

  • 단어를 대문자로 시작하고 나머지문자를 소문자로 만듬.
    # my FIRST post = My First Post
    {{ value|title }}
    

truncatechars

  • 문자열이 지정된 인수보다 길면 자른다. 잘린문자열을 ...로 표현
    # Joel is a slug -> Joel i...
    {{ value|truncatechars:9 }}
    

truncatechars_html

  • truncatechars와 비슷하지만 HTML 태그를 인식함
    #<p> Joel is a slug</p> -> <p>Oel i..</p>
    {{ value|truncatechars_html:9 }}
    

truncatewords

  • 특정 단어 수 뒤의 문자열을 자름.
    # Joel is a slug -> Joel is ...
    {{ value|truncatewords: 2 }}
    

truncatewords_html

  • truncatewords와 비슷하지만 HTML 태그를 인식
    # <p>Joel is a slug</p> -> <p> Joel is ... </p>
    {{ vallue|truncatewords_html:2 }}
    

unordered_list

  • 리스트의 형식에 따라 <ul>태그를 만듬.
    # ['States', ['Kanasa']]
    # <li>States
    #   <ul>
    #     <li>Kansas</li>
    #   </ul>
    # </li>
    {{ value|unordered_list }}
    

upper

  • 문자열을 대문자로 변환
    # Joel is a slug -> JOEL IS A SLUG
    {{ value|upper }}
    

urlencode

  • URL에 사용할 이스케이프 처리 함.
    # https://www.example.org/foo?a=b&c=d
    # -> https%3A//www.example.org/foo%3Fa%3Db%26c%3Dd
    {{ value|urlencode }}
    

urliize

  • 일반 텍스트의 URL 및 이메일 주소를 클릭 가능한 링크로 변환
    {{ value|urlize }}
    

urliizetrunc

  • urlize와 같이 동작 하지만 주어진 인수보다 글자수가 크면 URL을 자른다. (…)
    # Check out www.djangoproject.com
    # -> Check out <a href="http://www.djangoproject.com" rel="nofollow">www.djangopr...</a>
    {{ value|urliizetrunc:15 }}
    

wordcount

  • 단어의 수를 반환
    # Joel is a slug -> 4
    {{ value|wordcount }}
    

wordwrap

  • 지정된 길이로 단어를 줄바꿈 함.
    # Joel is a slug
    # Joel
    # is a
    # slug
    {{ value| wordwrap:5 }}
    

yesno

  • True, False, None 값을 문자열 'yes', 'no', 'maybe'에 매칭되는 문자로 반환
    # True -> yeah
    {{ value|yesno:"yeah,no,maybe"}}
    

Internationalization tags and filters

i18n

  • 번역가능한 텍스트를 지정할 수 있게함.
  • USE_I18NTrue로 설정
    {% load i18n %}
    

l10n

  • 템플릿 값의 로컬라이징을 지원 함.
  • USE_L10NTrue 하여 기본적으로 활성화 되도록 하는 경우가 많음.
    {% load l10n %}
    

tz

  • 템플릿의 시간대 변환을 제어
  • USE_TZTrue로 설정하여 로컬 시간의 변환을 기본적으로 발생 시킬 수도 있음.
    {% load tz %}
    

Other Tags and filters libraries

  • Django에는 INSTALLED_APPS에 명시적으로 표시하고 {% load %} 태그를 통해 활성해야 하는 몇 가지 다른 템플릿 태그 라이브러리가 있음.

django.contrib.humanize

  • 사람의 손길을 추가하는데 유용한 템플리

static

static

  • STATIC_ROOT에 저장된 정적 파일에 연결
  • STATICFILES_STORAGE에 지정된 저장공간의 url() 메소드를 사용하여 파일을 제공
  • as를 사용하여 이름 사용 가능
{% load static %}
<img src="{% static "images/h1.jpg" %}" alt="Hi" />
# 변수를 전달 받아 사용 가능
<link rel="stylesheet" href="{% static user_stylesheet %}" type="text/css" media="screen" />

get_static_prefix

  • 정적 템플릿이 삽입되는 정확한 위치와 방법을 제어 하기 위해 사용
{% load static %}
<img src="{% get_static_prefix %}images/h1.jpg" alt="Hi!" />

get_media_prefix

  • get_static_prefix와 마찬가지로 사용
{% load static %}
<body data-media-url="{% get_media_prefix %}">

Comments