2017-07-05 174 views
0

即时通讯尝试使用for循环为每一天添加一些数字 我想访问for循环之外的变量im不知道如何去做这个我正在使用与python瓶框架,只是来自在这不是问题的地方很烦人,是否有办法使它在烧瓶中以相同的方式工作?如何在for循环之外访问jinja2变量?

这里是一些简单的代码

{% set newtotal = 0 %} 
{% for item in daily: %} 
    {% set newtotal = newtotal + item[10]|float %} 
{% endfor %} 

<div class="bottom"> 
    <span>Total: {{ newtotal }}</span> 
</div> 

通过项目所收集的数[10]是美元价值 如果我把它显示的每个值作为其添加了ENDFOR前{{ newtotal }}这不是我要

编辑: 它是否有助于每日8元组

+0

你能在一个名为 “newtotal” 变量等于'传递给len(每日)'(你会在你的Python服务器脚本中计算)? – cosinepenguin

+0

这基本上是我最终这样做的提示;) – Mike

回答

0

一个解决方案的列表(可能是“简单”)将改变你的Python脚本传入一个名为newtotal的变量,该变量只是daily列表的长度!

或者,你可以使用length filter

{{things|length}} 

在这种情况下,你的代码可能是这个样子:

{% set newtotal = 0 %} 
{% for item in daily: %} 
    {% set newtotal = newtotal + item[10]|float %} 
{% endfor %} 

<div class="bottom"> 
    <span>Total: {{daily|length}}</span> 
</div> 

希望它能帮助!

其他资料来源:

jinja2: get lengths of list

How do I access Jinja2 for loop variables outside the loop?

编辑

对不起,我误解的问题!

您可以使用sum filter替代({{ list | sum() }})。

所以,你的代码可能看起来像:

{% set newtotal = 0 %} 
{% for item in daily: %} 
    {% set newtotal = newtotal + item[10]|float %} 
{% endfor %} 

<div class="bottom"> 
    <span>Total: {{ daily | sum() }}</span> 
</div> 

新来源:

Documentation Sum elements of the list in Jinja 2

+0

当我这样做,它只是返回列表的长度不是在位置10的项目的总和 – Mike

+0

我编辑答案,希望它的作品,似乎已经为其他人工作过! – cosinepenguin