10_jinja2模板过滤器

Posted nichengshishaonian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10_jinja2模板过滤器相关的知识,希望对你有一定的参考价值。

Jinja2模板过滤器

常用过滤器

  1. 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 '连名字你都懒得留' 
  1. abs(value): 返回一个数值的绝对值。如: -1|abs

  2. 关于转义:
    safe过滤器: 可以关闭一个字符串的自动转义, 禁用转义
    escape过滤器: 对某一个字符串进行转义
    autoescape标签: 可以对他里面的代码块关闭或开启自动转义

% autoescape off/on %
    ...代码块
% endautoescape %
  1. first: 返回一个序列的第一个元素. 如: names|first
  2. last: 返回最后一个值。 如: names|last.
  3. format: 格式化字符串
 '我的名字是: %s'|format(username) 
  1. length: 返回一个序列类型的长度, 如: names|length
  2. join: 将一个序列,用指定的参数拼接成字符串
# 后台:
@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
  1. int: 将值转换为 int 类型
    10, float: 将值转换为 float 类型
  2. lower: 将字符串转换为小写
  3. upper: 将字符串转换为大写
  4. string: 将变量转换为字符串
  5. replace: 替换字符串
# 将字符串中所有的 hello 替换成 hi
 'hello world aaa bbb hello'|replace('hello', 'hi') 
  1. truncate: 截取指定长度的字符串
 article|truncate(length=8) 
  1. striptags: 删除字符串中所有的HTML标签,如果出现多个空格,将替换成一个空格
  2. trle: 截取字符串前面和后面的空白字符
  3. wordcount: 计算一个长字符串中单词的个数
 article|wordcount 
  1. title: 把值中的第个单词的首页字母变成大写

  2. capitalize: 把变量值的首字母转成大写,其余字母转小写

    capitalize过滤器的使用结果:  'capitalize Hello HHHH aAAA'|capitalize 
    
    结果为:
    capitalize过滤器的使用结果: Capitalize hello hhhh aaaa
  3. trim: 把值的首尾空格去掉

  4. 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 

以上是关于10_jinja2模板过滤器的主要内容,如果未能解决你的问题,请参考以下文章

如何正确应用 django/jinja2 模板过滤器“转义”和“换行符”?

flask基础之jinja2模板-过滤器

3 jinja2模板

python 如何使用Markdown作为Jinja2模板中的过滤器,然后直接从模板中提取Markdown Meta属性。假设你

在 jinja2 中使用 django 过滤器

在 Jinja2 模板中使用 DateTimeFields 显示本地时间 - Django