jinja2模板中有自带的过滤器,有需要直接拿来使用。也可以自己定义过滤器

在过滤器中,有一些常见得操作及关键字。有对字符串的操作,还有对大小写转换的操作。还有对list的操作
过滤器的语法
{# 过滤器调用方式 {{ 变量 | 过滤器的名称 }} #} 这里用到了注释模板中的注释

首先整理一下关键字
字符串:
1.对大写转换为小写,lower。相对的,那么就有小写转换为大写,upper。
那么还有是首字符大写,captialize,这个单词在字符串的操作中出现过
2.还有一个转义。如果在输出中出现了html标签,那么在输出的时候我又不想显示标签,我只想要标签给我达到的效果,
而不需要看到标签的出现,就需要转义
比如:
safe过滤器,可以禁用转义
{{ '<strong>hello</strong>' | safe }}
我们这里用到了safe的关键字。hello就会在输出的时候变为粗体
在这里要提到另一个过滤器的关键字。striptage
比如:
过滤所有的html标签,em标签是斜体。跟转义没有任何关系,只是在过滤标签,把所有文本中的标签过滤掉
{{ '<em>hello</em>' | striptags }}
放在这里是要对禁止转义有个区别,safe是实现标签的功能,不输出标签,striptage是把标签过滤掉,只输出文本

3.字符串反转用到reverse
{{ '来一个反转' | reverse }}

list的相关过滤及关键字:
1.我们可以拿到列表中的首个元素,first
{{ [100,99,65] | first }}
2.相对的,我们就可以拿到末尾的元素 last
{{ [100,90,520] | last }}
3.我们也可以对list量取长度。length
{{ [1,2] | length }}
4.如果list中的元素都为int。也可以求和 sum
{{ [100,200] | sum }}
5.list中的int杂乱无序,也可以将list排序 sort
{{ [12,3,4,56,7,89,8,76,5] | sort }}

以上的都是对单个的来说,那么对于语句块来说也可以使用,对英文都转换为小写,或者大写都可以
{% filter upper %}
hello world hello python hello flask hello jinja2 hello myself hello my broter
{% endfilter upper %}
需要注意的是,要有结束

既然单个的使用过滤器,我们是不是也可以一起配合使用,是的,就会有链式过滤,也就是嵌套过滤,需要注意的是执行顺序
链式调用(嵌套的使用过滤器)
{{'abcdefg' | reverse | upper }} 双管道调用,先反转。后大写
{{'abcdefg' | upper | reverse }} 执行的顺序。谁先谁后要取决先调用了哪个关键字

jinja2模板给我们有很多的过滤器选择,但是我们也可以自己定义过滤器,首先需要在py文件中配置
所需要的过滤器。一切代码都是为了业务,代码也是实现业务的需求
需要注意的是在函数中我们要带有参数,这个参数类似于jquery中的filter所需要带的参数

# 自定义一个过滤器
def my_filter(val):
return '$' + str(val)
# 把自定义的过滤器赋给模板,第一个参数是自定义的过滤器的名称,第二个是过滤器的名称
# 这里调用 add_template_filter 这个方法。来对方法名进行传递。
app.add_template_filter(my_filter, 'my_filter')

flask的jinja2模板中过过滤器的相关小内容的更多相关文章

  1. Flask的jinja2模板中自定义过滤器的使用

    大部分的模板引擎都是支持过滤器功能的,jinja2也不例外,它提供了丰富的内置过滤器,但是有些时候还是没办法满足我们的需求,好在jinja2支持自定义过滤器,下面是一个简单的例子. 下面的例子完成了自 ...

  2. flask框架下的jinja2模板引擎(2)(过滤器与自定义过滤器)

    flask框架下的jinja2模块引擎(1):https://www.cnblogs.com/chichung/p/9774556.html 这篇论文主要用来记录下 jinja2 的过滤器. 什么是过 ...

  3. 【Flask】 Jinja2模板语言

    Jinja2 Jinja2是Python Web编程中的主流模板语言.因为flask是基于Jinja2和Werkzeug发展而来,在安装flask的时候jinja2自动就被装在上面了. 之前提到了很多 ...

  4. flask之jinja2模板语言

    一.jinja2简单介绍 Jinja2是Python里一个被广泛应用的模版引擎,他的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能.其中最显著的一个是增加了沙箱执行功能和可选的 ...

  5. Django 模板中 变量 过滤器的使用方法

    一.变量       1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量.    2.使用dot(.)能够访问变量的属性    3.当模板引擎碰到dot的 ...

  6. Django 模板中 变量 过滤器 标签 的使用方法

    一.变量       1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量.    2.使用dot(.)能够访问变量的属性    3.当模板引擎碰到dot的 ...

  7. 测试开发之Django——No7.Django模板中的过滤器

    1.add 将参数添加到值. 例如: {{ value|add:"2" }} 如果value是4,那么输出将是6. 此过滤器将首先尝试将两个值强制转换为整数.如果失败,它将尝试将值 ...

  8. Vue基础-在模板中使用过滤器

    Vue 测试版本:Vue.js v2.5.13 官网给了过滤器的两种使用方式: 1.你可以在一个组件的选项中定义本地的过滤器: 结合实例,我给两个代码: <div id="app&qu ...

  9. 十二:jinja2模板中使用url_for

    在页面中,有点击跳转到另一个地址的时候,可以使用url_for来指定要跳转的视图函数:{{ url_for('view_function') }} 如果该视图需要接收参数

随机推荐

  1. Mac环境下WingIDE切换python版本

    https://www.cnblogs.com/fastLearn/p/6514442.html

  2. Ubuntu中文目录文件夹改为英文

    打开终端,在终端中输入命令: export LANG=en_US xdg-user-dirs-gtk-update 在弹出的窗口中询问是否将目录转化为英文路径,同意并关闭. 在终端中输入命令: exp ...

  3. BZOJ4241:历史研究(回滚莫队)

    Description IOI国历史研究的第一人——JOI教授,最近获得了一份被认为是古代IOI国的住民写下的日记.JOI教授为了通过这份日记来研究古代IOI国的生活,开始着手调查日记中记载的事件. ...

  4. luogu P2709 小B的询问

    嘟嘟嘟 莫队板子. 记住:删除是先删除再移动,添加是先移动在添加! #include<cstdio> #include<iostream> #include<cmath& ...

  5. sed 以及 awk用法

    sed 格式 sed[options] "script" FILE.... 选项: -n:静默模式,不输出模式空间内的内容:默认打印空间模式的内容 -r:扩展的正则表达式 -f 文 ...

  6. 在任务管理器中显示所有CPU内核性能

    在Windows7"任务管理器"的”性能“选项卡默认显示所有的CPU内核性能 在Windows10中可以通过设置来实现效果

  7. jQuery内容横向拖拽滚动

    如果有业务需求:使用横向滚动,而又不想用滚动条,可以使用横向拖拽滚动,主要是利用元素的scrollLeft特性: 废话不多说直接上代码: css: .box{ width:100%; height:3 ...

  8. 蓝桥杯-k倍区间

    http://lx.lanqiao.cn/problem.page?gpid=T444 问题描述 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, .. ...

  9. HashTable、HashSet和Dictionary的区别(转载)

    1.HashTable哈希表(HashTable)表示键/值对的集合.在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类 ...

  10. mybatis框架下使用generator插件自动生成domain/mapping/mapper

    手动去创建domain/mapping/mapper费时费力还容易出错,用插件自动生成非常的方便. 这里以MySQL数据库为例,也可以改成Oracle,改成相应的驱动和URL即可. 下载generat ...