python测试开发django-181.自定义过滤器(除法取余)
2021/12/29 9:37:20
本文主要是介绍python测试开发django-181.自定义过滤器(除法取余),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
使用 django 模板jinja2 写 html, 需对变量的取值做加减乘除运行,得到的结果再去判断是否为真。
这种比较复杂的逻辑运行,可以通过自定义过滤器来实现。
遇到问题
视图函数返回的数据
context = {"titles": ["宇宙知识", "百科知识", "科学世界", "生物世界", "海洋世界", "唯美地球", "恐龙世界"]}
模板里面遍历取值
<h3>分类标题</h3> {% for title in titles %} {{ title }} | {% endfor %}
得到的结果
我们期望每3个title显示一行,多余的换行显示。
过滤器filter
在app下新建templatetags目录,
写一个过滤器myfilter.py
from django import template register = template.Library() @register.filter(name='quyu') def myquyu(value, arg): """除法取余,得到余数""" return int(value) % int(arg)
在模板中引用过滤器,必须先加载{% load myfilter %}
<h3>分类标题</h3> {% for title in titles %} {% if forloop.counter|quyu:3 == 0 %} {{ title }} <br> {% else %} {{ title }} | {% endif %} {% endfor %}
显示效果
再加个判断,最后一个不显示 |
{% load myfilter %} <h3>分类标题</h3> {% for title in titles %} {% if forloop.counter|quyu:3 == 0 %} {{ title }} <br> {% elif forloop.last %} {{ title }} {% else %} {{ title }} | {% endif %} {% endfor %}
显示效果
关于forloop变量的使用
- forloop 是for循环的内容变量
- forloop.counter 是得到当前是第几次循环,从1开始
- forloop.counter0 是得到当前是第几次循环,从0开始
- forloop.first 是否是第一次循环,返回布尔值
- forloop.last 是否是最后一次循环,返回布尔值
这篇关于python测试开发django-181.自定义过滤器(除法取余)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础