我有一个文本文件,格式如下:
Title
\n
Description
\n
Title
\n
Description
...
在我的烧瓶应用程序中,我在渲染模板时发送对文件的引用。我能够执行以下代码来逐行遍历文件
{% for line in file: %}
{% set title = line %}
....
但是,我无法使用
行{% file.readline() %}
因为我收到了错误
Encountered unknown tag 'file'. Jinja was looking for the following tags: 'endfor' or 'else'. The innermost block that needs to be closed is 'for'.
我检查了所有标签并关闭了循环。 Jinja有没有办法在阅读文件时跳过一行?
答案 0 :(得分:2)
在Jinja控件的末尾没有冒号(:
),它们与Python块不同。
file.readline()
是一个表达式,而不是Jinja控件。使用{{ }}
而不是{% %}
来分隔表达式。
在逐行迭代文件时调用file.readline()
没有意义。您已经通过迭代阅读了该行。
{% for line in file %}
{{ line }}<br>
{% endfor %}