max*_*axm 11 python templates jinja2
我想通常我很好奇jinja2括号中允许的操作,例如我要做的是对嵌入数据执行操作,如下所示:
{{ round(255*(mileage['chevy'] - mileage['ford']))/1000 }}
Run Code Online (Sandbox Code Playgroud)
这会在回溯时引发错误:
UndefinedError:'round'未定义
类似地,当我尝试在括号中的jinja块中使用'abs'时,我得到一个未定义的错误 - 即使它们都是标准的lib函数.有没有办法在模板渲染过程中执行此操作,而不是在传递数据之前?
mad*_*jar 31
jinja2模板语言与python语言不同.在jinja2中,对值的操作通常在过滤器中完成:{{ something | operation }}.您可以在jinja2文档中找到过滤器列表.
例如,要进行舍入,您可以执行以下操作:
{{ 42.55|round }}
Run Code Online (Sandbox Code Playgroud)
这将在网页上显示"42".一个abs过滤器以同样的方式存在.
请注意,这些过滤器只能用于在显示前更改值,并可用于计算.无论如何,不应该在模板中进行计算.
| 归档时间: |
|
| 查看次数: |
13150 次 |
| 最近记录: |