阅读Jinja2的下一行

时间:2016-07-20 16:54:20

标签: file flask jinja2

我有一个文本文件,格式如下:

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有没有办法在阅读文件时跳过一行?

1 个答案:

答案 0 :(得分:2)

在Jinja控件的末尾没有冒号(:),它们与Python块不同。

file.readline()是一个表达式,而不是Jinja控件。使用{{ }}而不是{% %}来分隔表达式。

在逐行迭代文件时调用file.readline()没有意义。您已经通过迭代阅读了该行。

{% for line in file %}
    {{ line }}<br>
{% endfor %}