在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 %}
显示效果