jinja2 - 如何在 Jinja2 中检查变量是否为整数?

标签 jinja2

目的是检查变量是否为整数,如果为真则插入 hello。

尝试

{% if int(variable) %} hello {% endif %}

结果
'int' is undefined"

最佳答案

使用 Jinja2 int内置过滤器(尝试将值转换为 int):

您需要使用过滤器格式,如下所示:

{% if variable|int != 0 %} hello {% endif %}

默认情况下,如果转换为 int 失败,则返回 0,但您可以通过将不同的默认值指定为第一个参数来更改此设置。在这里,对于 0 可能是 variable 的有效值的情况,我已将其更改为 -1。 .
{% if variable|int(-1) != -1 %} hello {% endif %}

见:Jinja2 Docs - int builtin filter欲了解更多信息

使用 Jinja2 number内置测试(如果变量已经是数字,则返回 true):

更好的解决方案,而不是使用 int过滤器(它将像字符串一样的整数转换为整数)是使用内置测试 number , 像这样:
{% if variable is number %} hello {% endif %}

见:Jinja2 Docs - number builtin test

关于jinja2 - 如何在 Jinja2 中检查变量是否为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41743796/

相关文章:

dictionary - 使用 Ansible 将嵌套字典扁平化为键/值对

jquery - 避免包含 jQuery 模板的 Jinja2 中出现不明确的 mustache

flask - 如何使用flask与Jinja渲染html内容?

jinja2 - 使用 Jinja 循环时如何忽略列表中的元素?

Jquery XHR 导致 dom 更改通过刷新等持续存在

ansible - 使用循环(set_fact 或其他?)为变量赋值

python - Jinja 在 HTML 中呈现文本并保留换行符

python - 扩展未出现在 Flask Python 中的基本模板

mysql - 在ansible中连接变量

python - 如何将 "key = value;"对的字符串转换为 ansible 中的字典?