换行符和破折号在 jinja 中无法正常工作

newline and dash not working correctly in jinja(换行符和破折号在 jinja 中无法正常工作)

本文介绍了换行符和破折号在 jinja 中无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎样才能产生预期的输出?谢谢

How could I generate the expected output ? Thanks

{%- for field in fields -%}

-
  name: {{field}}
  type: string



{%- endfor -%}

输出

-
  name: operating revenue
  type: string-
  name: gross operating profit
  type: string-

预期输出

-
  name: operating revenue
  type: string
-
  name: gross operating profit
  type: string

代码

from jinja2 import Template

fields = ["operating revenue", "gross operating profit", "EBITDA", "operating profit after depreciation", "EBIT", "date"]
template_file = open('./fields_template.jinja2').read()
template = Template(template_file)
html_rendered = template.render(fields=fields)
print(html_rendered)

推荐答案

- 删除了 Jinja 标签的 那一侧 和第一个字符之间的所有空格.您在标签的内部"使用 -,因此空格被删除到 - 字符和单词 string 之后,加入两个.删除其中一个.

The - removes all whitespace between that side of the Jinja tag and the first character. You are using - on the 'inside' of the tags, so whitespace is removed up to the - character and after the word string, joining up the two. Remove one or the other.

例如,您可以删除文本开头和结尾处的额外换行符,并从开始标记的内侧删除 -:

You could remove the extra newlines at the start and end of your text for example, and remove the - from the inside side of the opening tag:

{%- for field in fields %}
-
  name: {{field}}
  type: string
{%- endfor -%}

演示:

>>> from jinja2 import Template
>>> fields = ["operating revenue", "gross operating profit", "EBITDA", "operating profit after depreciation", "EBIT", "date"]
>>> template_file = '''
... {%- for field in fields %}
... -
...   name: {{field}}
...   type: string
... {%- endfor -%}
... '''
>>> template = Template(template_file)
>>> html_rendered = template.render(fields=fields)
>>> print(html_rendered)

-
  name: operating revenue
  type: string
-
  name: gross operating profit
  type: string
-
  name: EBITDA
  type: string
-
  name: operating profit after depreciation
  type: string
-
  name: EBIT
  type: string
-
  name: date
  type: string

这篇关于换行符和破折号在 jinja 中无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:换行符和破折号在 jinja 中无法正常工作

基础教程推荐