用一个循环在一个列表中显示两个列表的结果(Flask - Python)
Display results from two lists in one list with one loop (Flask - Python)
我试图在链接列表的 HTML 页面 (index.html) 上显示我的结果。我有两个列表,第一个包含所有网站名称,第二个包含它们的链接。我想将名称显示为可点击的项目。
我的清单:
name_list = ['Name1','Name2','Name3']
link_list = ['Link1','Link2','Link3']
我的 Python 密码是什么 returns:
return render_template('index.html' , name_list =name_list , link_list =link_list , len1 = len(name_list ))
HTML代码:
{% for i in range(0, len1) %}
<li><a href={{link_list[i]}} >{{ name_list[i] }}</a></li>
{% endfor %}
但是我有两个错误:
首先使用 len1
,因为当我将代码更改为 range(0, 5)
(或任何 int)时,这一行有效。
TypeError: 'Undefined' object cannot be interpreted as an integer
第二次发生在我添加我想要的元素的位置时 name_list[i]
。
jinja2.exceptions.UndefinedError: 'name_list' is undefined
这里有一个简单的方法可以解决您的问题:
您将两个列表与 python 的内置函数 zip()
:
合并
name_list = ['Name1','Name2','Name3']
link_list = ['Link1','Link2','Link3']
name_link_list = zip(name_list, link_list)
你只需return这个:
return render_template('index.html' , name_link_list=name_link_list)
此 return 是一个 [('Name1', 'Link1'), ('Name2', 'Link2'), ...]
形式的元组列表,您可以使用每个元素的索引在 HTML 代码中获取它。 0 代表 name,1 代表 link.
最后是您的 HTML 代码:
<ul>
{% for i in name_link_list %}
<li><a href={{i[1]}} >{{ i[0] }}</a></li>
{% endfor %}
</ul>
我试图在链接列表的 HTML 页面 (index.html) 上显示我的结果。我有两个列表,第一个包含所有网站名称,第二个包含它们的链接。我想将名称显示为可点击的项目。
我的清单:
name_list = ['Name1','Name2','Name3']
link_list = ['Link1','Link2','Link3']
我的 Python 密码是什么 returns:
return render_template('index.html' , name_list =name_list , link_list =link_list , len1 = len(name_list ))
HTML代码:
{% for i in range(0, len1) %}
<li><a href={{link_list[i]}} >{{ name_list[i] }}</a></li>
{% endfor %}
但是我有两个错误:
首先使用 len1
,因为当我将代码更改为 range(0, 5)
(或任何 int)时,这一行有效。
TypeError: 'Undefined' object cannot be interpreted as an integer
第二次发生在我添加我想要的元素的位置时 name_list[i]
。
jinja2.exceptions.UndefinedError: 'name_list' is undefined
这里有一个简单的方法可以解决您的问题:
您将两个列表与 python 的内置函数 zip()
:
name_list = ['Name1','Name2','Name3']
link_list = ['Link1','Link2','Link3']
name_link_list = zip(name_list, link_list)
你只需return这个:
return render_template('index.html' , name_link_list=name_link_list)
此 return 是一个 [('Name1', 'Link1'), ('Name2', 'Link2'), ...]
形式的元组列表,您可以使用每个元素的索引在 HTML 代码中获取它。 0 代表 name,1 代表 link.
最后是您的 HTML 代码:
<ul>
{% for i in name_link_list %}
<li><a href={{i[1]}} >{{ i[0] }}</a></li>
{% endfor %}
</ul>