如何正确地将jinja2.ext.loopcontrols导入Flask?

时间:2015-06-27 12:15:27

标签: python flask jinja2

我已经在Flask文档中读到我应该导入" jinja2.ext.loopcontrols"扩展名以使用范围标记。

我试图通过以下方式这样做:

app = Flask(__name__)
app.jinja_env.add_extension('jinja2.ext.loopcontrols')
app.config.from_object(__name__)

但每次我使用范围标签时,它都会给我:

TemplateSyntaxError: Encountered unknown tag 'range'. Jinja was looking for the following tags: 'endblock'. The innermost block that needs to be closed is 'block'.

这是我在模板文件中的代码:

{% range number from 1 to 5 %}
 {% for x in posts %}
  <p>The value of X is: </p> {{ x }}
 {% endfor %}
{% endrange %}

那么导入它的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

如果您只想获得前5个帖子,可以使用列表切片(如果您的posts变量是列表):

{% for x in posts[:5] %}
    ....

如果您真的想使用loopcontrols扩展程序:

{% for _ in range(1, 6) %}
    ....