Django에서 템플릿 필터 사용자 정의
Django
의 템플릿 필터는 강력하고 쓰기 좋다.물론 프로젝트가 앞뒤로 분리되어 템플릿이 사용되지 않으면 템플릿 필터가 존재하지 않습니다.템플릿 필터의 역할은 백엔드에서 들어오는 보기 변수에 대해 값이나 형식을 바꾸는 것입니다.
Django
에는 필터가 매우 많아서 기본적으로 프로젝트에서 사용할 수 있습니다.1.
Django
의 내장 필터예를 들어
add
: add
뒤에 있는 파라미터를 value
에 추가한다.{{value | add : "2"}}
value
의 값이 4이면 출력은 6.예를 들어
cut
: 주어진 매개 변수 변수와 같은 문자를 제거value
합니다.{{value | cut:" "}}
value
가 "Hello world"
이면 출력"Helloworld"
(빈칸을 제외).그러나 때때로 업무 수요에 따라 우리는 자신의 템플릿 필터를 써야 한다. 다음은 사용자 정의 템플릿 필터를 설명하자.
2. 매개 변수가 없는 필터 사용자 정의
Markdown에서 당신의 글과 코드를 밝게 하는 데도 이런 필터를 사용했습니다.예를 들어 문자열을 대문자로 바꾸는 데 사용되는
my_upper
필터를 실현합니다. ((Django
이미 실현되었지만, upper
.예를 들면 다음과 같습니다.
{{value | my_upper}}
value
가 "Hello world"
인 경우 출력"HEELO WORLD"
구체적 조작: 응용 프로그램 디렉터리에 templatetags
라는 폴더를 새로 만들고 내부에 __init__.py
(공백 가능)과 custom_filter.py
라는 두 파일을 새로 만듭니다. 편집custom_filter.py
:from django import template
register = template.Library()
@register.filter
def my_upper(value):
try:
value.upper()
except Exception, e:
return value
이렇게 하면
my_upper
이 필터를 정의할 수 있으며, 사용할 때 템플릿 파일 헤더에 쓰는 것을 잊지 마십시오 {% load custom_filter %}
.3. 매개 변수가 있는 필터 사용자 정의
사실 첫 번째 부분의 두 가지 예는 파라미터를 가진 필터입니다. 다음은 코드로 실현해 보겠습니다.
@register.filter
def get_value(mydict,key_name):
assert(isinstance(mydict,dict))
try:
return mydict[key_name]
except KeyError:
return mydict
위 코드는 키로 사전에서 값을 가져옵니다.
함수
views.py
를 시도하는 경우:def index(request):
dicts = {"key1" : 1, "key2" : 2, "key3" : 3 }
return render(request, 'index.html', {'dicts': dicts})
템플릿에서 사용:
{{dicts | get_value : "key1"}}
1로 내보내기(끝)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.