目录
- Jinja2模板过滤器
- 常用过滤器
- 列表操作
Jinja2模板过滤器
常用过滤器
default
: 有则使用传的,没则使用默认值
使用方式:{{ value|default(‘默认值‘) }}
, 如果value这个key不存在,则会使用default过滤器提供的默认值。如果你想使用类似于python
中判断一个值是否为False (例如:None, 空字符串,空列表,空字典等), 那么就必须要传递另外一个参数{{ value|default(‘默认值‘, boolean=True) }}
, 可以使用or
来替代default(‘默认值‘, boolean=True)
。
{{ name|default('连名字你都懒得留') }}
{{ name|default('连名字你都懒得留', boolean=True) }}
{{ name or '连名字你都懒得留' }}
- abs(value): 返回一个数值的绝对值。如: -1|abs
- 关于转义:
safe
过滤器: 可以关闭一个字符串的自动转义, 禁用转义
escape
过滤器: 对某一个字符串进行转义
autoescape
标签: 可以对他里面的代码块关闭或开启自动转义
{% autoescape off/on %}
...代码块
{% endautoescape %}
first
: 返回一个序列的第一个元素. 如: names|firstlast
: 返回最后一个值。 如: names|last.format
: 格式化字符串
{{ '我的名字是: %s'|format(username) }}
length
: 返回一个序列类型的长度, 如: names|lengthjoin
: 将一个序列,用指定的参数拼接成字符串
# 后台:
@app.route('/')
def index():
context = {
'username': 'cheng',
'age': 18,
'country': '',
'names': ['ceng', 'yan', 'cheng', 'long', 'dong', 'zhu']
}
return render_template('index.html', **context)
# 前台
{{ names|join('/') }}
# 结果:
ceng/yan/cheng/long/dong/zhu
int
: 将值转换为 int 类型
10,float
: 将值转换为 float 类型lower
: 将字符串转换为小写upper
: 将字符串转换为大写string
: 将变量转换为字符串replace
: 替换字符串
# 将字符串中所有的 hello 替换成 hi
{{ 'hello world aaa bbb hello'|replace('hello', 'hi') }}
truncate
: 截取指定长度的字符串
{{ article|truncate(length=8) }}
striptags
: 删除字符串中所有的HTML标签,如果出现多个空格,将替换成一个空格trle
: 截取字符串前面和后面的空白字符wordcount
: 计算一个长字符串中单词的个数
{{ article|wordcount }}
title
: 把值中的第个单词的首页字母变成大写capitalize
: 把变量值的首字母转成大写,其余字母转小写capitalize过滤器的使用结果: {{ 'capitalize Hello HHHH aAAA'|capitalize }} 结果为: capitalize过滤器的使用结果: Capitalize hello hhhh aaaa
trim
: 把值的首尾空格去掉reverse
: 字符串的反转{{'hello world'|reverse}} 结果为: dlrow olleh
列表操作
- first: 取第一个元素
- last: 取最后一个元素
- length: 获取列表的长度
- sum: 列表求和
- sort: 列表排序
{{ [1, 2, 3, 4, 5]|first }}
{{ [1, 2, 3, 4, 5]|last }}
{{ [1, 2, 3, 4, 5]|length }}
{{ [1, 2, 3, 4, 5]|sum }}
{{ [8, 1, 6, 4, 5]|sort }}
原文地址:https://www.cnblogs.com/nichengshishaonian/p/11631702.html
时间: 2024-11-07 01:37:27