Python Jinja-烧瓶中的变量

Python Jinja-烧瓶中的变量,python,flask,jinja2,Python,Flask,Jinja2,我正在尝试创建一个下拉列表来选择一年。从今天开始,这个名单必须在过去200年内更新。我无法在jinja中使用循环来创建选择选项。 我已将保持当前年份(2020年)的now变量传递给它 现在,now-=1这一行是这样的: jinja2.exceptions.TemplateSyntaxError {x在(200)%范围内的百分比} {{now} {%now-=1%} {%endfor%} 您可以将0索引循环索引变量用于此任务: {x在(200)%范围内的百分比} {{now-loop.ind

我正在尝试创建一个下拉列表来选择一年。从今天开始,这个名单必须在过去200年内更新。我无法在jinja中使用循环来创建选择选项。 我已将保持当前年份(2020年)的
now
变量传递给它

现在,
now-=1
这一行是这样的: jinja2.exceptions.TemplateSyntaxError


{x在(200)%范围内的百分比}
{{now}
{%now-=1%}
{%endfor%}

您可以将0索引循环索引变量用于此任务:


{x在(200)%范围内的百分比}
{{now-loop.index0}
{%endfor%}

您可以将0索引循环索引变量用于此任务:


{x在(200)%范围内的百分比}
{{now-loop.index0}
{%endfor%}

除了使用。显然,在循环中指定一个变量是一个已知的限制,除了使用。显然,分配给循环中的变量是一个已知的限制,如解释和所示。谢谢。成功了。我没有用过Django。现在只在烧瓶上。您知道Django中是否也存在同样的限制吗?一般来说,Jinja2比Django模板更强大。Django中没有
set
函数(但是有一个
{%with var=“something”%}{%endwith%}
块,它有点类似。)但是您可以定义一个,例如
subtract
并在循环中使用它来实现相同的行为:
{now | subtract:forloop.counter0}
。forloop.counter0的循环索引与Jinja2的
loop.index0
相同。谢谢。成功了。我没有用过Django。现在只在烧瓶上。您知道Django中是否也存在同样的限制吗?一般来说,Jinja2比Django模板更强大。Django中没有
set
函数(但是有一个
{%with var=“something”%}{%endwith%}
块,它有点类似。)但是您可以定义一个,例如
subtract
并在循环中使用它来实现相同的行为:
{now | subtract:forloop.counter0}
。forloop.counter0的
forcode与Jinja2的
loop.index0
是相同的循环索引。
<select class="year" name="year">
    {% for x in range (200) %}
        <option value= '{{ now - loop.index0 }}'>{{ now - loop.index0 }}</option>
    {% endfor %}
</select>