我正在编写一个烧瓶应用程序,可以使用以下代码在浏览器上显示结果:
<!DOCTYPE html>
<html>
<head>
<title> {{ title }} </title>
</head>
<body>
Enter starter data to execute:
<form action="/top_hits" method="POST">
<input type="text" name="text" />
<input type="submit" value="Submit!" rows="6"/>
</form>
{% for q in q1 %}
<textarea form="txtArea" name="q" class="form-control" id="q" rows="100" cols="60" placeholder="{{ q }}" style="font-size: 15pt"></textarea >
{% endfor %}
</body>
</html>
结果q
中的每一个本身都是list of list
。如何循环显示单个结果并在textarea中打印单个q
的整个结果?
我使用两个for循环尝试了类似下面的内容,但我的逻辑存在缺陷并显示虚假结果(在Flask / Html中完成新手):
{% for q in q1 %}
{% for q_prime in q %}
<textarea form="txtArea" name="q_prime" class="form-control" id="q_prime" rows="100" cols="60" placeholder="{{ q_prime }}" style="font-size: 15pt"></textarea >
{% endfor %}
{% endfor %}
我附上了两张截图,以便更清楚:
答案 0 :(得分:0)
你可以用两种方式做到这一点:
1.在后端中列出您的列表并使用格式化结果呈现模板。
2.使用jinja2模板过滤器
@app.template_filter('instead_loop')
def reverse_filter(s):
final_str = ''
for i in s:
for _i in i:
final_str += str(_i) + ', '
return final_str
然后在模板中:
<!DOCTYPE html>
<html>
<head>
<title>fuck</title>
</head>
<body>
<textarea form="txtArea" name="q" class="form-control" id="q" rows="100" cols="60" placeholder="{{ q1 | instead_loop }}" style="font-size: 15pt"></textarea>
</body>
</html>