7.4 过滤器与管道命令

代码1

{# 注意这里的data里是不存在school的值的 #}
{{ data.school | default("未名")}}

这段代码在浏览器中会显示“未名”。

代码2

{# 注意这里的data里是不存在school的值的 #}
{{ data.school==None | default("未名")}}

这段代码在浏览器中会显示False。

代码3

{# 注意这里的data里是不存在school的值的 #}
{{ data.school | default(data.class)| default("未名")}}

这段代码在浏览器中会显示”未名“。

  • 管道命令“|”是首先计算“|”前面的表达式的值,然后将结果传到“|”后面的表达式。

    • default函数的作用是先判断前面传来的值存在不存在,如果存在直接返回,否则返回参数的值

    • data.school 这个属性不存在,所以第一段代码会执行default函数,而data.school==None结果是False,这个结果存在,所以第二段代码直接返回False

    • 第三段代码,首先计算data.school,传入下面的default,data.school不存在,所以返回data.class,data.class又回传入第三个default,data.class不存在,所以返回”未名“

代码4

{# data = {name:"mark",age:19} #}
{{ data | length() }}

这段代码返回2,因为length()函数,返回前面传入结果的长度

Last updated