在我的烧瓶应用程序中,我正在创建一个列表并附加。当我追加到列表时
None
打印。
{% set keyword_list = [] %}
{% for keyword in keywords_data %}
{{ keyword_list.append(keyword['keywords_id']) }} //None prints for each iteration
{% endfor %}
{{ keyword_list | join(',') }}
打印1,2,3
{{ keyword_list }}
打印[1,2,3]
将其更改为
{{ keyword_list.append(keyword['keywords_id']) or "" }}
,它使用or
的功能返回第一个真实答案。由于 Jinja 中的字符串始终为真,而 None
为假,因此它返回空字符串,不向最终用户输出任何内容。
编辑:@New Coder 询问是否有更简单的方法来做到这一点,确实有!使用
_
作为一次性变量来存储 None
输出,如下所示: {% set _ = keyword_list.append(keyword['keywords_id']) %}
要抑制追加操作的输出,请在步骤中定义一个新的空变量
{%- set keyword_list = [] -%}
{%- for keyword in keywords_data -%}
{%- _ = keyword_list.append(keyword['keywords_id']) -%}
{%- endfor -%}
我还建议您使用
%- -%
结构以避免不必要的空格。
有关文档中空白控件的更多信息
https://ttl255.com/jinja2-tutorial-part-3-whitespace-control/