Python Django模板之模板过滤器与自定义模板过滤器示例


Posted in Python onOctober 18, 2019

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
Python的Flask框架中实现简单的登录功能的教程
Apr 20 Python
python求解水仙花数的方法
May 11 Python
Python处理XML格式数据的方法详解
Mar 21 Python
Python实现简单文本字符串处理的方法
Jan 22 Python
python3.5 email实现发送邮件功能
May 22 Python
Python列表生成式与生成器操作示例
Aug 01 Python
python创建文件备份的脚本
Sep 11 Python
numpy下的flatten()函数用法详解
May 27 Python
Django 实现Admin自动填充当前用户的示例代码
Nov 18 Python
Python使用指定字符长度切分数据示例
Dec 05 Python
python访问hdfs的操作
Jun 06 Python
django 模型字段设置默认值代码
Jul 15 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
Oct 18 #Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 #Python
python调用Matplotlib绘制分布点图
Oct 18 #Python
Python 异常处理Ⅳ过程图解
Oct 18 #Python
python库matplotlib绘制坐标图
Oct 18 #Python
python实现WebSocket服务端过程解析
Oct 18 #Python
django实现支付宝支付实例讲解
Oct 17 #Python
You might like
php防盗链的常用方法小结
2010/07/02 PHP
discuz的php防止sql注入函数
2011/01/17 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
php去除数组中重复数据
2014/11/18 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
Python获取邮件地址的方法
2015/07/10 Python
深入理解Django中内置的用户认证
2017/10/06 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
介绍一下EJB的体系结构
2012/08/01 面试题
母亲80寿诞答谢词
2014/01/16 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers