본문으로 바로가기

django 내장 템플릿 필터

category Python 2019. 10. 17. 11:42

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

  • 지정된 형식에 따라 날짜 형식을 지정
  • PHP의 date() 함수와 비슷한 형식. 약간 다름

    # 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

  • IRI를 URL에 포함하기에 적합한 문자열로 바꿈.
  • URL애 ASCII문자가 포함된 문자열을 사용하려는 경우에 필요

    # ?test=1&me=2 -> ?text=1&amp;me=2 {{ value|ireiencode }}

join

  • python의 join 과 같이 문자열로 합칩니다.

    # ['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

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_I18N을 True로 설정

    {% load i18n %}

l10n

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

    {% load l10n %}

tz

  • 템플릿의 시간대 변환을 제어
  • USE_TZ를 True로 설정하여 로컬 시간의 변환을 기본적으로 발생 시킬 수도 있음.

    {% 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 %}">

 

 

 

원문 : https://himanmengit.github.io/django/2018/02/23/Built-In-Template-Filter.html