>백엔드 개발 >파이썬 튜토리얼 >Django 사용자 정의 템플릿 태그 및 필터(코드 예)

Django 사용자 정의 템플릿 태그 및 필터(코드 예)

不言
不言앞으로
2019-04-01 11:03:061980검색

이 기사는 Django 사용자 정의 템플릿 태그 및 필터(코드 예제)에 대한 내용을 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 될 수 있습니다.

1. 템플릿 라이브러리 만들기

APP가 있는 디렉터리에 새 패키지 templatetags를 만든 다음 여기에 태그나 필터를 저장할 모듈을 만듭니다. 이름은 myfilters와 같습니다. 파이.

이 모듈에 관련 코드를 작성하세요.

참고: templatetags가 있는 앱은 구성 파일에서 구성되어야 합니다.

2. 필터 정의

필터는 함수입니다. 첫 번째 매개변수는 처리할 값입니다. 그 다음에는 필터 매개변수로 여러 매개변수가 있을 수 있습니다.

from django import template
from django.template.defaultfilters import stringfilter

register=template.Library()

# 去除指定字符串
@register.filter(name='mycut')
@stringfilter
def mycut(value,arg):
    return value.replace(arg,'')

# 注册过滤器
# register.filter(name='mycut',filter_func=mycut)

3. 태그 정의

simple_tag

데이터 처리 및 특정 데이터 반환

@register.simple_tag(name='posts_count')
def total_posts():
    return Post.published.count()

inclusion_tag

데이터 처리 및 렌더링된 템플릿 반환

@register.inclusion_tag('blog/post/latest.html')
def show_latest_posts(count=5):
    latest_posts=Post.published.order_by('-publish')[:5]
    return {
        'latest_posts':latest_posts,
    }

blog/post/latest.html내용은 다음과 같습니다. :

<strong>最新文章</strong>
<ul>
{% for post in latest_posts %}
<li>
    <a href="{% url &#39;blog:post_detail&#39; post_id=post.id %}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>

4.

사용 사용자 정의 태그 또는 필터를 사용하기 전에 템플릿 파일에서 {% load 模块名称 %}를 사용하여 사용자 정의 태그 및 필터를 로드해야 합니다.

이후에는 Django에 포함된 태그를 사용하는 것처럼 사용하시면 됩니다.

참고: 사용자 정의 태그나 필터가 있는 모듈이 현재 템플릿에서 상속된 기본 템플릿에 로드된 경우에도 현재 템플릿에서 다시 로드해야 합니다.

【관련 추천: python 비디오 튜토리얼

위 내용은 Django 사용자 정의 템플릿 태그 및 필터(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제