flask的jinja2模板中过过滤器的相关小内容
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模板中过过滤器的相关小内容的更多相关文章
- Flask的jinja2模板中自定义过滤器的使用
大部分的模板引擎都是支持过滤器功能的,jinja2也不例外,它提供了丰富的内置过滤器,但是有些时候还是没办法满足我们的需求,好在jinja2支持自定义过滤器,下面是一个简单的例子. 下面的例子完成了自 ...
- flask框架下的jinja2模板引擎(2)(过滤器与自定义过滤器)
flask框架下的jinja2模块引擎(1):https://www.cnblogs.com/chichung/p/9774556.html 这篇论文主要用来记录下 jinja2 的过滤器. 什么是过 ...
- 【Flask】 Jinja2模板语言
Jinja2 Jinja2是Python Web编程中的主流模板语言.因为flask是基于Jinja2和Werkzeug发展而来,在安装flask的时候jinja2自动就被装在上面了. 之前提到了很多 ...
- flask之jinja2模板语言
一.jinja2简单介绍 Jinja2是Python里一个被广泛应用的模版引擎,他的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能.其中最显著的一个是增加了沙箱执行功能和可选的 ...
- Django 模板中 变量 过滤器的使用方法
一.变量 1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量. 2.使用dot(.)能够访问变量的属性 3.当模板引擎碰到dot的 ...
- Django 模板中 变量 过滤器 标签 的使用方法
一.变量 1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量. 2.使用dot(.)能够访问变量的属性 3.当模板引擎碰到dot的 ...
- 测试开发之Django——No7.Django模板中的过滤器
1.add 将参数添加到值. 例如: {{ value|add:"2" }} 如果value是4,那么输出将是6. 此过滤器将首先尝试将两个值强制转换为整数.如果失败,它将尝试将值 ...
- Vue基础-在模板中使用过滤器
Vue 测试版本:Vue.js v2.5.13 官网给了过滤器的两种使用方式: 1.你可以在一个组件的选项中定义本地的过滤器: 结合实例,我给两个代码: <div id="app&qu ...
- 十二:jinja2模板中使用url_for
在页面中,有点击跳转到另一个地址的时候,可以使用url_for来指定要跳转的视图函数:{{ url_for('view_function') }} 如果该视图需要接收参数
随机推荐
- .NET Core 控制台项目中的Nuget打包类库及引用
由于使用的是MAC版本的VSCode,所以全部是通过dotnet命令来完成的. 1.dotnet new lib 创建类库项目: 2.编辑项目根目录下的.csproj文件,添加版本号(建议): < ...
- Sublime Text 3中文乱码
Sublime Text 3是很好的代码编辑器,没有之一,因为她的性感高亮代码配色,更因为它的小巧,但是它默认不支持GBK的编码格式,因此打开GBK的代码文件,如果里面有中文的话,就会乱码,如下所示: ...
- jdk8环境下,添加重复注解的美好体验
为了实现业务层缓存,定义了几个注解:@Cache.able.@Cache.put.@Cache.del 分别实现对业务方法的 缓存检测.缓存插入 和 缓存清除. public @interface C ...
- loli的测试——搜索
今天是2018.5.24,loli给我们说要考搜索,本来以为是给初学者们考的就没准备,然而老师说我们也要考.(2018.6.29补:这次的简单测试与之后变得非常难的几次搜索测试形成了鲜明的对比,从而更 ...
- [USACO08DEC]Patting Heads
嘟嘟嘟 这题还是比较水的.首先O(n2)模拟显然过不了,那就换一种思路,考虑每一个数对答案的贡献,显然一个数a[i]会对后面的a[i] * 2, a[i] * 3,a[i] * 4……都贡献1,.那么 ...
- ethers.js-4-Contracts
Contracts A Contract is an abstraction of an executable program on the Ethereum Blockchain. A Contra ...
- 理解JavaScript继承(三)
理解JavaScript继承(三) 通过把父对象的属性,全部拷贝给子对象,也能实现继承. 7.浅拷贝 function extendCopy(p) { var o = {}; for (var pro ...
- Python自动化之logging模块
Logging模块构成 主要分为四个部分: Loggers:提供应用程序直接使用的接口 Handlers:将Loggers产生的日志传到指定位置 Filters:对输出日志进行过滤 Formatter ...
- 小H和密码
链接:https://www.nowcoder.com/acm/contest/72/B来源:牛客网 题目描述 小H在击败怪兽后,被一个密码锁挡住了去路 密码锁由N个转盘组成,编号为1 ...
- 【vue】vue项目引入 Element-UI
根据vue项目的搭建教程,接下来记录下如何在Vue-cli创建的项目中引入Element-UI. 1.安装直接用命令 (推荐) npm install element-ui 2.直接在根目录下的pac ...