반응형

 

<참조> https://himanmengit.github.io/django/2018/02/23/Built-In-Template-Filter.html

 

Django 내장 템플릿 필터

 

1. Built-in Template filter

 

참고로, 필터는 | 문자를 이용하여 다중 필터를 설정할 수 있습니다.

 

{{ title|capfirst|center:"15" }}

 

 

add :  변수에 값을 추가(+)

두 값을 정수로 강제 변환하고 더한다.

 

# value가 0이면  ->  10

{{ value|add:10 }}

 

# first가 [1, 2, 3, 4] second가 [5, 6, 7]  ->  first는 [1, 2, 3, 4, 5, 6, 7]

{{ first|add:second }}

 

addslashes : 문자열 안의 따옴표 앞에 슬래시를 추가

# "I'm using Django"  ->  "I\'m using Django"

{{ value|addslashes }}

 

capfirst : 문자열의 첫 글자를 대문자로 바꿈

문자가 아니면 효과가 없다.

# "my name is gilsoon."  ->  "My name is gilsun."

{{ value|capfirst }}

 

center : 주어진 폭의 필드에서 중앙 정렬

# "      Django      "

{{ value|center:"15" }}

 

cut : 인수로 주어진 값을 모두 제거

# 'ab c d'  ->  'abcd'

{{ value|cur:" " }}

 

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.000   -> 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 : 리스트의 문자열 값을 한 문자열로 만듦

# ['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'] 또는 '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’) 반환

{{ num_walruses }} walrus {{ num_walruses|pluralize:"es" }}

 

pprint : pprint.pprint() 디버깅 출력

 

random : 리스트에서 임의(랜덤) 항목 반환

# [1,2,3,4]  ->  3 (랜덤값)

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

 

stringformat : 문자열 형식 인수에 따라 변수 형식 변경

# 10  ->  1.000000E+01

{{ value|stringforamt:"E" }}

 

striptags : 모든 XHTML/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>Joel 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"}}

 

 

2. 국제화 태그와 필터

 

i18n : 번역 가능한 텍스트 지정 가능하게 함

USE_I18N을 True로 설정

{% load i18n %}

 

l10n : 템플릿 값의 로컬라이징(지역화) 지원

USE_L10N을 True 설정하여 기본 활성화 되도록 하는 경우가 많다.

{% load l10n %}

 

tz : 템플릿 시간대 변환 제어

USE_TZ를 True로 설정하여 지역 시간 변환을 기본 발생시킬 수도 있다.

{% load tz %}

 

3. 기타 태그와 필터 라이브러리

 

Django에는 INSTALLED_APPS에 명시적으로 표시하고 

{% load %} 태그를 통해 활성하는 몇 가지 템플릿 태그 라이브러리가 있다.

 

예 : django.contrib.humanize 

 

4. 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 %}">

 

<이상> 

반응형

+ Recent posts