2017-09-08 3 views
-1

私はデカルト積を計算するために使用するいくつかのリストを持っている:Flaskでは、どのようにしてJinjaテンプレートにpythonリストを出力しますか?

python.py:

@app.route('/output', methods = ['GET','POST']) 
def output(): 
    a = ['one','two'] 
    b = ['three','four'] 
    c = ['five'] 
    d = ['six','seven','eight'] 
    e = ['nine','ten','eleven'] 

    cpl = list(itertools.product(a,b,c,d,e)) 
    return render_template('output.html',cpl = cpl) 

がoutput.html:しかし

{% for cp in cpl %} 
    <p>{{ cp }} </p> 
{% endfor %} 

、私は空白の画面が返されています。

Jupyterで同じPythonコードを実行しているときに、リストが返されます。

どこで問題がありますか?

+1

python.py

@app.route('/output', methods = ['GET','POST']) def output(): a = ['one','two'] b = ['three','four'] c = ['five'] d = ['six','seven','eight'] e = ['nine','ten','eleven'] newArray = [] newArray = [a, b, c, d, e] cpl = list(itertools.product(*[i for i in newArray if i != []])) return render_template('output.html',cpl = cpl) 

output.html現在の設定に問題があります。あなたのコードをローカルで実行したところ、期待される出力が得られました。 –

答えて

1

cplはタプルのリストを返しますが、単一の値ではありません。多分それはジンジャーを混乱させます。ネストされたforループを作成するか、テンプレートをレンダリングする前にそれらのタプルを文字列にキャストしてみることができます。

例えば、働いていた解決策がある

strings = [str(c) for c in cpl] 
return render_template("output.html", cpl=strings) 
+0

ダウトそう。セットアップがうまく動作し、タプル文字列表現を生成します。 – alecxe

+0

私は変換しようとしましたが、それは助けにはなりませんでした。 PythonやJinjaではどこでネストループを作成しますか? –

+0

セットアップが@alecxeでうまく動作し、変換が役に立たなかった場合は、他のすべてをチェックします。 – minterm

1

を追加してみてください:それはちょうどかもしれ

{% for cp in cpl %} 
<p> {{ cp }} </p> 
{% endfor %} 
+0

うれしいです。これを受け入れられた答えにする。 – minterm

関連する問題