过滤器

过滤器是通过|符号进行使用的。例如{{ user.name|length }}将返回指定变量内容的长度。过滤器相当于一个函数,将其前方的值传入函数中,返回处理后的值。Jinja2中常用的过滤器有以下这些:

  • abs,返回数字的绝对值;
  • default(value, boolean=False),如果当前变量没有值,则使用参数中的值代替,如果boolean参数值为true则以Python的方式判断是否为false,否则只有变量为undefined时才会输出默认值;
  • escape或者e,将字符串转义后输出;
  • first,返回序列的第一个元素;
  • format(*args, **kwargs),格式化输出字符串,例如{{ "\%s" - "\%s"|format('Hello', 'Foo') }}
  • last,返回序列的最后一个元素;
  • length,返回序列、字符串或者字典的长度;
  • join(value),用value作为分隔符拼接序列为字符串;
  • safe,如果开启了全局转义,则临时关闭转义;
  • int,将值转换为整型;
  • float,将值转换为浮点型;
  • lower,将字符串转换为小写;
  • upper,将字符串转换为大写;
  • replace(old, new),将字符串中的old替换为new
  • truncate(length=255, killwords=False),截取长度为length的字符串;
  • striptags,删除字符串中的HTML标签;
  • string,将值转换为字符串;
  • workcount,计算字符串中单词的个数。