Jinja2-过滤器

什么是过滤器? 实质上就是一个转换函数。变量可以通过“过滤器”进行修改,过滤器可以理解为是jinja2里面的内置函数和字符串处理函数

常用的过滤器有:

让我们来测试一下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>字符串过滤器</title>
</head>
<body><div>{# 设置默认值 #}<p>{{ name | default("这个家伙很懒,什么都没有留下。") }}</p>{# 转大写 #}<p>{{ "abc" | upper }}</p>{# 转小写 #}<p>{{ "ABC" | lower }}</p>{# 颠倒 #}<p>{{ "123456789" | reverse }}</p>{# 格式化 #}<p>{{ "今天是%s,天气%s" | format("2021年8月15日","多云") }}</p></div>
</body>
</html>
这个家伙很懒,什么都没有留下。
ABC
abc
987654321
今天是2021年8月15日,天气多云

2.数字过滤器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>数字过滤器</title>
</head>
<body>{# 四舍五入 #}<p>{{ 3.14 | round }}</p>{# 保留两位小数 #}<p>{{ 2.71828 | round(2) }}</p>{# 取绝对值 #}<p>{{ -7 | abs }}</p>
</body>
</html>
3.0
2.72
7

3.列表过滤器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>列表过滤器</title>
</head>
<body>{# 获取第一个元素 #}<p>{{ [1,4,2,9,3] | first }}</p>{# 获取最后一个元素 #}<p>{{ [1,7,3,3,8] | last }}</p>{# 获取列表的长度 #}<p>{{ [7,3,3,6] | length }}</p>{# 对列表元素进行求和 #}<p>{{ [1,7,5,4,2] | sum }}</p>{# 对列表元素进行排序 #}<p>{{ [1,5,0,-5,3] | sort }}</p>{# 使用指定字符对列表元素进行拼接 #}<p>{{ [4,6,3,0,1] |join("<->") }}</p>{# 将列表元素全部转为大写 #}<p>{{ ["a","b","c","d"] | upper }}</p>
</body>
</html>
1
8
4
19
[-5, 0, 1, 3, 5]
4<->6<->3<->0<->1
['A', 'B', 'C', 'D']

4.字典过滤器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>字典过滤器</title>
</head>
<body>{# create a student dict #}{% set student=[{"name":"zss","age":18,"sex":"女"},{"name":"fbb","age":21,"sex":"女"},{"name":"mx","age":22,"sex":"男"},{"name":"wq","age":20,"sex":"女"}] %}<ul>{# 对student进行排序,指定attribute为age,降序 #}{% for stu in student |sort(attribute="age",reverse=true)%}<li>{{ stu.name }} |{{ stu.sex }} </li>{% endfor %}</ul><p>------------------------------------------------------</p><ul>{# 对student进行分组,会返回一个分组后的元组 #}{% for stu_list in  student | groupby("sex") %}{# 对分组后的元素进行遍历 #}{% for stu in stu_list.list %}<li>{{ stu.name }} - {{ stu.age }} - {{ stu.sex }}</li>{% endfor %}{% endfor %}</ul><p>------------------------------------------------------</p><ul>{# 对student进行聚合操作,在将聚合后的元素列表进行拼接 #}{{ student | map(attribute="name") | join("<->") }}</ul>
</body>
</html>
    mx |男fbb |女wq |女zss |女
------------------------------------------------------zss - 18 - 女fbb - 21 - 女wq - 20 - 女mx - 22 - 男
------------------------------------------------------zss<->fbb<->mx<->wq

jinja2-过滤器相关推荐

  1. 【Flask】jinja2过滤器的使用

    使用情景- 遇到一个bug:在数据库中存的数据,取出到前端后自带换行,(导致js中的引号.分号直接被换到下一行),js无法正常读取数据.猜测可能是在数据录入的时候输入了什么特殊符号,但是把数据删掉重新 ...

  2. 第十阶段 -- Flask框架03:【Jinja2模板01:模板;过滤器;控制语句if for】

    文章目录 1. Jinja2模板介绍和查找路径 2. 模板传参及其技巧 3. 模板中使用url_for 4. Jinja2过滤器 1. 基本使用 2. 过滤器介绍 3. default详解 4. 常用 ...

  3. Day02 Jinja2模板引擎Bootstrap

    Day02 Jinja2模板引擎, 使用Twitter Bootstrap 源代码: https://github.com/LToddy/blog 技术交流群:630398887(欢迎一起吹牛) 有些 ...

  4. 基于python技术的自动化运维是干嘛的_《Python自动化运维 技术与最佳实践》.pdf...

    [实例简介]Python自动化运维 技术与最佳实践 [刘天斯著][机械工业出版社][2014.12][291页].pdf [实例截图] [核心代码] 目 录 本书赞誉 前 言 第一部分 基础篇 第1章 ...

  5. Django 模板语言 标签

    前言:django的模板语法基本和flask的jinja2基本一样.下面比较一下两个模板语法的区别. ------深度变量的查找(万能的句点号) 在 Django 模板中遍历复杂数据结构的关键是句点字 ...

  6. Flask入门系列(转载)

    一.入门系列: Flask入门系列(一)–Hello World 项目开发中,经常要写一些小系统来辅助,比如监控系统,配置系统等等.用传统的Java写,太笨重了,连PHP都嫌麻烦.一直在寻找一个轻量级 ...

  7. python自动化运维书籍推荐_《Python 自动化运维:技术与最佳实践》

    第一部分 基础篇 第1章 系统基础信息模块详解 2 1.1 系统性能信息模块psutil 2 1.1.1 获取系统性能信息 3 1.1.2 系统进程管理方法 6 1.2 实用的IP地址处理模块IPy ...

  8. Linux集群和自动化运维

    Linux/Unix技术丛书 Linux集群和自动化运维 余洪春 著 图书在版编目(CIP)数据 Linux集群和自动化运维/余洪春著. -北京:机械工业出版社,2016.8 (Linux/Unix技 ...

  9. Ansible 使用变量

    使用变量 虽然自动化的存在是为了更容易使事情可重复,但并非所有系统都完全相同.有些可能需要与其他配置略有不同的配置.在某些情况下,观察到的一个系统的行为或状态可能会影响您配置其他系统的方式.例如,您可 ...

  10. ansible(七种武器)

    ansible七种武器 第一种武器 Ansible命令,用于执行临时性的工作,也是我们之前主要学习的功能,必须掌握 第二种武器 Ansible-doc是Ansible模块文档说明,针对每个模块都有详细 ...

最新文章

  1. .NET Core的日志[2]:将日志输出到控制台
  2. 2018百度之星度度熊学队列
  3. 日志处理两大生态Splunk和ELK深度对比
  4. 【机器学习】Kmeans聚类
  5. linux下面安装Matlab2017b、快捷键修改、修改背景颜色(转载+自己整理)
  6. npm包管理器小节一下
  7. txt格式单词导入有道词典生词本
  8. Socket和Sock之间同步机制
  9. sam格式的结构和意义_sam概述
  10. npm ------ npm 安装删除命令(rimraf)删除本地依赖包
  11. Mybatis下传入时间条件,查询慢的优化方法
  12. CAD打印文字不显示怎么办
  13. k8s之HPA(Pod水平自动伸缩)
  14. 【你知道maven么?】
  15. 青玉案.元夕-2023
  16. 玩一玩Greasemonkey--开发上手篇
  17. NumPy学习笔记前言
  18. 用Python编程需要什么软件?
  19. NLP语料库构建(corpus)
  20. 动态代理——CGLIB动态代理原理示例解析

热门文章

  1. # CentOS 7 安装 NETBOX
  2. 【PMP】敏捷项目月报模板
  3. java分布式库存系统_这个是真的厉害,高并发场景下的订单和库存处理方案,讲的很详细了!...
  4. 【数据库】学生档案管理系统
  5. 2022年全球与中国液位传感器行业发展趋势及投资战略分析报告
  6. 基于单片机的多功能出租车计价器设计资料
  7. freenom域名免翻墙注册
  8. 数据治理建设管理方案(参考)(二)
  9. 毕夏钟伟强沧桑战全场泪奔
  10. 【VBA研究】Excel条码控件生成的Code-39码不能识别问题