本文实例讲述了Python Django模板之模板过滤器与自定义模板过滤器。分享给大家供大家参考,具体如下:
模板过滤器
过滤器用于对模板变量进行操作。
date:改变日期的显示格式。
length:求长度。字符串,列表。
default:设置模板变量的默认值。
格式:模板变量|过滤器:参数
自定义过滤器。
自定义的过滤器函数,至少有一个参数,最多两个
例如:
{{ book.btitle|length }} # 返回字符串或列表的长度
{{ book.bpub_date|date:'Y年-m月-d日' }} # 格式化日期格式
{{ content|default:'hello' }} # 为不存在的变量指定默认值。
自定义模板过滤器
应用名/templatetags/filters.py(自定义过滤器函数,templatetags文件名固定):
# 自定义过滤器
# 过滤器其实就是python函数
from django.template import Library
# 创建一个Library类的对象
register = Library()
# 自定义的过滤器函数,至少有一个参数,最多两个。(第一个参数就是要过滤的模板变量)
@register.filter
def mod(num):
'''判断num是否为偶数'''
return num%2 == 0
@register.filter
def mod_val(num, val):
'''判断num是否能被val整除'''
return num%val == 0
demo.html(模板文件,使用自定义过滤器):
<!DOCTYPE html>
<html lang="en">
{% load filters %} {# load标签加载自定义过滤器的py文件。和templatetags/filters.py 的py文件名一致。 #}
<head>
<meta charset="UTF-8">
<title>模板过滤器</title>
</head>
<body>
<ul>
{# {% if book.id|mod %}#} {# 使用自定义的过滤器。需要先load自定义过滤器的py文件 #}
{% if book.id|mod_val:3 %} {# 使用自定义的过滤器 #}
。。。
{% else %}
。。。
{% endif %}
</ul>
</body>
</html>
希望本文所述对大家基于Django框架的Python程序设计有所帮助。
您可能感兴趣的文章:Django模板导入母版继承和自定义返回Html片段过程解析django admin 自定义替换change页面模板的方法Django自定义模板过滤器和标签的实现方法利用django-suit模板添加自定义的菜单、页面及设置访问权限浅谈Django自定义模板标签template_tags的用处编写自定义的Django模板加载器的简单示例在Django框架中自定义模板过滤器的方法django自定义模板标签过程解析