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通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 Python
用Python脚本来删除指定容量以上的文件的教程
May 04 Python
python连接字符串的方法小结
Jul 13 Python
使用python加密自己的密码
Aug 04 Python
教你用Python写安卓游戏外挂
Jan 11 Python
python pyheatmap包绘制热力图
Nov 09 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
将pandas.dataframe的数据写入到文件中的方法
Dec 07 Python
详解django实现自定义manage命令的扩展
Aug 13 Python
Python pygame绘制文字制作滚动文字过程解析
Dec 12 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
Nov 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
第十三节--对象串行化
2006/11/16 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
移动Web中图片自适应的两种JavaScript解决方法
2015/06/18 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
详解js中==与===的区别
2017/01/08 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
react中hook介绍以及使用教程
2020/12/11 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
浅析Python中else语句块的使用技巧
2016/06/16 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
Python画图高斯分布的示例
2019/07/10 Python
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
Ruby如何创建一个线程
2013/03/10 面试题
中学生团员自我评价分享
2013/12/07 职场文书
生产车间主管岗位职责
2013/12/28 职场文书
聚美优品广告词改编
2014/03/14 职场文书
《晚上的太阳》教学反思
2014/04/23 职场文书
无毒社区工作方案
2014/05/23 职场文书
水浒传读书笔记
2015/06/25 职场文书
小学庆六一主持词
2015/06/30 职场文书
初中数学教学随笔
2015/08/15 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android
MySQL优化之慢日志查询
2022/06/10 MySQL