Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在Flask中,如何将python列表打印到Jinja模板?_Python 3.x_List_Loops_Flask_Jinja2 - Fatal编程技术网

Python 3.x 在Flask中,如何将python列表打印到Jinja模板?

Python 3.x 在Flask中,如何将python列表打印到Jinja模板?,python-3.x,list,loops,flask,jinja2,Python 3.x,List,Loops,Flask,Jinja2,我有几个用于计算笛卡尔积的列表: 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.produc

我有几个用于计算笛卡尔积的列表:

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 %}
{% for cp in cpl %}
<p> {{ cp }} </p>
{% endfor %}
{%用于cpl%中的cp}
{{cp}}

{%endfor%}
然而,我被返回一个空白屏幕

当我在Jupyter中运行相同的python代码时,会返回列表


我哪里会有问题

cpl返回一个元组列表,它不是单个值。也许这让Jinja很困惑。可以创建嵌套for循环,也可以在呈现模板之前尝试将这些元组转换为字符串

例如,尝试添加

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

有效的解决方案是:

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:

{% for cp in cpl %}
  <p>{{ cp }} </p>
{% endfor %}
{% for cp in cpl %}
<p> {{ cp }} </p>
{% endfor %}
{%用于cpl%中的cp}
{{cp}}

{%endfor%}
。这个设置对我来说很好,生成了元组字符串表示。我尝试了转换,但没有帮助。在python或jinja中,我应该在哪里创建嵌套循环?如果@alecxe的设置工作正常,并且转换没有帮助,那么我会仔细检查其他所有内容。@minterm当我尝试单独传递其中一个列表时,例如列表“a”(将render_模板中的参数更改为“a=a”),它会显示jinja中的内容,但不是cpl@FeyziBagirov尝试使用我刚才添加的字符串转换来呈现它。让我知道进展如何。这可能只是您当前设置的问题。我在本地运行了您的代码,得到了预期的输出。