将变量传递给烧瓶中的 table
passing variable to a table in flask
我正在关注这个 video 并且一切正常。 SQL 查询的输出保存在一个变量中,我可以在另一个 .html 页面中调用该变量。
所以我的 sql 查询是:
@app.route('/all_data')
def all_data():
customers = db.get_customers()
for customer in customers:
var = customers
return render_template('all_data.html',var=var)
在 all_data.html 页面中调用此 {{var}} 时,输出是一个长元组:
('name','email','comment','gender'),('name','email','comment','gender') etc etc
我希望将此 {{var}} 放入 table 中?..但我在寻找如何做到这一点时遇到困难?
如有任何帮助,我们将不胜感激!
假设您使用的是 Flask 的默认模板引擎 (Jinja2),您可以简单地使用 for 循环来迭代模板内集合的元素。语法是:
{% for item in items %}
{{ item }}
{% endfor %}
因此只需创建一个 HTML table,并为 var
变量中的每个项目添加一行。
IIRC,Jinja 元组与 Python 的行为相同,因此您可以按照以下方式做一些事情:
<table>
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Comment</th>
<th>Gender</th>
</tr>
</thead>
<tbody>
{% for current in var %}
<tr>
<td>{{ current[0] }}</td>
<td>{{ current[1] }}</td>
<td>{{ current[2] }}</td>
<td>{{ current[3] }}</td>
</tr>
{% endfor %}
</tbody>
</table>
我还没有检查过(因为我现在没有可用的 Flask 项目),但如果我没记错的话,我会这样做
Here's a link to an usefull part of Jinja2's documentation
另外,这段代码是做什么用的?
for customer in customers:
var = customers
您正在遍历列表的每个元素,但您从不使用 customer
变量(包含当前元素)。相反,您多次将 var
变量分配给 customers
列表。假设 customers
是一个简单的 Python 列表,您可以删除此循环并简单地执行 return render_template('all_data.html',var=customers)
我正在关注这个 video 并且一切正常。 SQL 查询的输出保存在一个变量中,我可以在另一个 .html 页面中调用该变量。
所以我的 sql 查询是:
@app.route('/all_data')
def all_data():
customers = db.get_customers()
for customer in customers:
var = customers
return render_template('all_data.html',var=var)
在 all_data.html 页面中调用此 {{var}} 时,输出是一个长元组:
('name','email','comment','gender'),('name','email','comment','gender') etc etc
我希望将此 {{var}} 放入 table 中?..但我在寻找如何做到这一点时遇到困难?
如有任何帮助,我们将不胜感激!
假设您使用的是 Flask 的默认模板引擎 (Jinja2),您可以简单地使用 for 循环来迭代模板内集合的元素。语法是:
{% for item in items %}
{{ item }}
{% endfor %}
因此只需创建一个 HTML table,并为 var
变量中的每个项目添加一行。
IIRC,Jinja 元组与 Python 的行为相同,因此您可以按照以下方式做一些事情:
<table>
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Comment</th>
<th>Gender</th>
</tr>
</thead>
<tbody>
{% for current in var %}
<tr>
<td>{{ current[0] }}</td>
<td>{{ current[1] }}</td>
<td>{{ current[2] }}</td>
<td>{{ current[3] }}</td>
</tr>
{% endfor %}
</tbody>
</table>
我还没有检查过(因为我现在没有可用的 Flask 项目),但如果我没记错的话,我会这样做
Here's a link to an usefull part of Jinja2's documentation
另外,这段代码是做什么用的?
for customer in customers: var = customers
您正在遍历列表的每个元素,但您从不使用 customer
变量(包含当前元素)。相反,您多次将 var
变量分配给 customers
列表。假设 customers
是一个简单的 Python 列表,您可以删除此循环并简单地执行 return render_template('all_data.html',var=customers)