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使用multiprocessing创建进程的方法
Jun 04 Python
python实现红包裂变算法
Feb 16 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
基于python指定包的安装路径方法
Oct 27 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
Python列表(List)知识点总结
Feb 18 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 Python
Python实现为PDF去除水印的示例代码
Apr 03 Python
使用scrapy实现增量式爬取方式
Jun 21 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 生成WML页面方法详解
2009/08/09 PHP
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
php基于base64解码图片与加密图片还原实例
2014/11/03 PHP
php递归函数怎么用才有效
2018/02/24 PHP
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
JavaScript监听键盘事件代码实现
2020/06/03 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
Python实现发送email的几种常用方法
2014/08/18 Python
python调用fortran模块
2016/04/08 Python
Python调用C++程序的方法详解
2017/01/24 Python
python实现名片管理系统
2018/11/29 Python
python用for循环求和的方法总结
2019/07/08 Python
python3中eval函数用法使用简介
2019/08/02 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
美术师范毕业生自荐信
2013/11/16 职场文书
质量工程师岗位职责
2013/11/16 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
2014年行政后勤工作总结
2014/12/06 职场文书
中秋节晚会开场白
2015/05/29 职场文书
城南旧事电影观后感
2015/06/16 职场文书
《开国大典》教学反思
2016/02/16 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
科普 | 业余无线电知识-波段篇
2022/02/18 无线电
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript