2017-07-05 26 views
0

イムは毎日 ためのいくつかの数字を追加するためにforループを使用しようと、私は私の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 }}を配置する場合、そのが、これはどのような私ではありません合算されているとして、それはすべての値を示していますそれは

+0

は、あなたが毎日 'LEN(に等しい "newtotal" という名前の変数に渡すことができます) '(あなたのPythonサーバースクリプトで計算する)? – cosinepenguin

+0

これは私がヒントのためのthatsをやってしまったものを基本的にある;) – Mike

答えて

0

一つの解決策は、(おそらく「最も簡単な」)になり8つのタプルのリストで、毎日場合に役立ちます :

EDITをしたいです単純にdailyリストの長さになるnewtotalという名前の変数に渡すようにPythonスクリプトを変更してください!

また、あなたはlength filterを使用することができます。

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

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

はそれが役に立てば幸い:あなたのコードは次のようなものを見ることができる

{{things|length}} 

その場合!

追加ソース:

jinja2: get lengths of list

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

EDIT

申し訳ありませんが、私は質問を読み違え!

あなたは代わりに({{ list | sum() }})をsum filterを使用することができます。

だからあなたのコードは次のようになります。

新しいソース

{% 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

にリストないアイテムの合計の長さを返し、私は答えを編集し、それが動作願って、それが思わSOの他の人のために働いている! – cosinepenguin

関連する問題