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 装饰器功能以及函数参数使用介绍
Jan 27 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
在Python程序中操作文件之flush()方法的使用教程
May 24 Python
python按时间排序目录下的文件实现方法
Oct 17 Python
使用python将请求的requests headers参数格式化方法
Jan 02 Python
基于python if 判断选择结构的实例详解
May 06 Python
python Django里CSRF 对应策略详解
Aug 05 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
Python使用循环神经网络解决文本分类问题的方法详解
Jan 16 Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 Python
Python爬虫之Selenium设置元素等待的方法
Dec 04 Python
python 使用openpyxl读取excel数据
Feb 18 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 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
php简单实现数组分页的方法
2016/04/30 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
python表格存取的方法
2018/03/07 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
python自动化之Ansible的安装教程
2019/06/13 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
教师找工作推荐信
2013/11/23 职场文书
2014年远程教育工作总结
2014/12/09 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis