我有一个颜色列表:
colors = [red, green, blue]
我希望它以
的形式打印在我的网页上- 红 绿色蓝色
我通过在我的HTML模板{{colors_out}}
中使用一个参数来尝试这一点,在这里我将一个带有"n"
的字符串传递给它,如下所示:
colors_out = ""
for i in range(len(colors)):
colors_out += (str(i) + ". " + colors[i] + "n")
然而,这只会在颜色之间增加一个空间。它输出如下内容:
0. red 1. green 2. blue
而不是我想要的格式。我也尝试用上面的for循环中的"<br>"
替换"n"
,但随后它将导致:
0. red<br>1. green<br>2. blue<br>
一种方法,你可以尝试在你的HTML中使用Jinja2中的for循环。
您可以简单地将一个列表传递给HTML,然后在Jinja2中使用for循环和
标记将输出打印在单独的行上—
例如在你的例子中-
在你的Flask代码-
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/colors', methods=["GET","POST"])
def test():
#your other code
colors = ['red', 'green', 'blue']
return render_template('index.html',color=colors)
if __name__ == '__main__':
app.run()
你的HTML代码-
添加这个for循环,在这里我遍历所有的颜色并在单独的行中打印它们
{% for i in color %}
<p>{{ i }} </p>
{% endfor %}
你也可以根据你的要求使用任何其他标签,它仍然会在新行上打印。