在flask中同時遍歷兩個list中的資料並一一對應顯示

MrKrabs_Cashier發表於2020-11-19

在flask中同時遍歷兩個list中的資料並一一對應顯示

在html中和直接在python中使用時的區別

python中可以使用zip方法同時遍歷兩個list並一一對應:

lists1 = [‘John’, ‘Mary’, ‘Abey’]
lists2 = [‘Good Morning’, ‘Good Riddance’, ‘I hate python’]
for x, y in zip(lists1, lists2):
  print(x, ‘said’, y)

然而在html檔案中這樣使用會報錯,解決的辦法很簡單,在route.py中國傳入兩個list時先把兩個list用zip綁在一起,然後把總包傳入html使用就沒問題了。

route.py中打包
在這裡插入圖片描述

@app.route('/sayings')
def sayings():
	user = {'username': 'Vivek'}
	lists1 = ['John', 'Mary', 'Abey']
	lists2 = ['Good Morning', 'Good Riddance', 'I hate python']
	lists = zip(lists1,lists2)
	return render_template('sayings.html', title='Home', user=user, lists=lists)

sayings.html中直接使用
在這裡插入圖片描述

{% block content %}
        <h1>Hi, {{ user.username }}!</h1>
        {% for x,y in lists %}
        <div><p>{{ x }} said <b>{{ y }}</b> </p></div>
        {% endfor %}
{% endblock %}

顯示效果
在這裡插入圖片描述

相關文章