Django自定义过滤器
接上一节: https://blog.csdn.net/LeeSkyRa/article/details/103730085
自定义模板过滤器及使用大概分为以下几步:
1、在项目目录下创建一个 common 包,在 common 包下创建一个 templatetags 包,在 templatetags 包里创建一个 myfilter.py 文件,用以写自定义过滤器代码。
2、common/templatetags/myfilter.py 写自定义过滤器,并注册
from django import template
register=template.Library()
def rpl(stg):
return stg.replace('o','*-*')
register.filter('rpl',rpl)
@register.filter
def rvs(args):
return list(reversed(args))
@register.filter
def rmdlt(args):
return list(set(sorted(args)))
3、在项目的 settings.py 文件注册 common app
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'common',
]
4、在模板中加载过滤器模块,并在需要的地方使用自定义过滤器
{% extends 'app_st/base.html' %}
{% load myfilter %}
{% load static %}
{% block title %}VARIABLE{% endblock %}
{% block css %}{% static 'app_st/css/variable.css' %}{% endblock %}
{% block content %}
<div>
<p>列表 {{ li }} 反序排列 : {{ li | rvs }}</p>
<p>字符串 {{ srg }} 替换 'o' 为 '*-*' : {{ srg | rpl }}</p>
<p>列表 {{ li_1 }} 去重正序排列 : {{ li_1 | rmdlt }}</p>
</div>
{% endblock %}
详情见下图(由于页面呈现内容有限,故上节的过滤器有关代码部分已清空):
下面我们就启动 django 服务,浏览器地址栏输入 127.0.0.1:8000/app/variable , 查看效果:
这样,自定义模板过滤器及使用就实现咯!
来源:CSDN
作者:LeeSrabbit
链接:https://blog.csdn.net/LeeSkyRa/article/details/103733977