<참조> 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을 이스케이프 처리
< -> <
# 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&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 %}">
<이상>
'Django' 카테고리의 다른 글
Django Ecommerce Website with multiple vendors (0) | 2021.09.05 |
---|---|
Django Web Framework - Full Course for Beginners (0) | 2021.09.04 |
Django 모델 외래 키(ForeignKey) (0) | 2021.09.03 |
Django 템플릿 언어¶ (0) | 2021.09.03 |
PostgreSQL 설치, django-db 연결 (0) | 2021.09.02 |