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') }} 如果该视图需要接收参数
随机推荐
- Z :彻底了解指针数组,数组指针以及函数指针 [复
原创 :彻底了解指针数组,数组指针以及函数指针 [复制链接] 00 roking 白手起家 帖子 60 主题 16 精华 0 可用积分 74 专家积分 0 在线时间 0 小时 注册时间 2003-10 ...
- Maven实战(十)利用 Nexus 来构建企业级 Maven 仓库
目录 一.简介 Nexus是Maven仓库管理器,用来搭建一个本地仓库服务器,这样做的好处是便于管理,节省网络资源,速度快,还有一个非常有用的功能就是可以通过项目的SNAPSHOT版本管理,来进行模块 ...
- [转]Linux下查看CPU信息、机器型号等硬件信息
From: http://www.jbxue.com/LINUXjishu/14582.html 查看CPU信息(型号) : # cat /proc/cpuinfo | grep name | cut ...
- ubuntu 12.04 eclipse增加桌面快捷方式
1.创建桌面启动器(编辑/usr/share/applications/eclipse.desktop) [Desktop Entry] Encoding=UTF-8 Name=eclipse Com ...
- Golang 读取写入Etcd
http://www.yunweipai.com/archives/8131.html 新一代etcd:etcd3 etcd是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现.简 ...
- set集合HashSet
一: 和List接口同一级的还有Set接口,Set类型的集合,元素不能重复,存储顺序和迭代顺序没有必然联系.他的元素的唯一性是由hasCode和equals决定的. 他的子类,常用的HashSet和L ...
- bootstrap组件-导出数据
一.需求:在我们日常工作的时候,对数据的导出有需求.比如导出JSON.XML.SQL等形式.方便我们日常使用. 二.组件:我们可以使用bootstrap的扩展插件Table Export来实现我们的需 ...
- HDU 1316 (斐波那契数列,大数相加,大数比较大小)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1316 Recall the definition of the Fibonacci numbers: ...
- centos7下部署iptables环境纪录(关闭默认的firewalle)(转)
下面介绍centos7关闭firewall安装iptables,并且开启80端口.3306端口的操作记录:[root@localhost ~]# cat /etc/redhat-release Cen ...
- 404 Note Found队Beta3
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...