Flask - 通过嵌套 for 循环制作 HTML table 超链接?
Flask - Making HTML table of hyperlinks via nested for-loops?
我正在设计一个使用 MySQL 数据库的 Flask 应用程序。
我有下面这个 Flask 代码:
@app.route("/test")
def test():
cursor.execute("SELECT * from testtable;")
data = cursor.fetchall()
return render_template('test.html', data = data)
我希望从这些数据中得到一个 HTML table,并且我希望这个 table 的第一列是超级 linked。我目前的test.html如下图:
<table border="1" cellpadding="5" cellspacing="5">
{% for row in data %}
<tr>
{% for d in row %}
<td><a href="/testresult?query={{ d }}">{{ d }}</a></td>
{% endfor %}
</tr>
{% endfor %}
</table>
这个 HTML 从 table 的每一列的每个单元格中生成一个超 link。有没有办法只让第一列中的单元格被超linked,而让所有其他单元格只显示{{d}}?
Flask 中的默认模板引擎是 jinja2。
在 jinja2 中,您可以检查循环索引,这意味着您可以执行以下操作。
{% for d in row %}
{% if loop.index == 1 %} # You can also use loop.index0 for 0-based indexing
<td><a href="/testresult?query={{ d }}">{{ d }}</a></td>
{% else %}
<td>{{ d }}</td>
{% endif %}
{% endfor %}
您还可以使用以下语法跳过行列表中的第一个元素:
{% for d in row[1:] %}
在您的 table 中,将 for 循环放在 tr
元素之外。
<table border="1" cellpadding="5" cellspacing="5">
{% for row in data %}
<tr>
<td><a href="/testresult?query={{ row.d }}">{{ row.d }}</a></td>
{% endfor %}
</tr>
</table>
我正在设计一个使用 MySQL 数据库的 Flask 应用程序。
我有下面这个 Flask 代码:
@app.route("/test")
def test():
cursor.execute("SELECT * from testtable;")
data = cursor.fetchall()
return render_template('test.html', data = data)
我希望从这些数据中得到一个 HTML table,并且我希望这个 table 的第一列是超级 linked。我目前的test.html如下图:
<table border="1" cellpadding="5" cellspacing="5">
{% for row in data %}
<tr>
{% for d in row %}
<td><a href="/testresult?query={{ d }}">{{ d }}</a></td>
{% endfor %}
</tr>
{% endfor %}
</table>
这个 HTML 从 table 的每一列的每个单元格中生成一个超 link。有没有办法只让第一列中的单元格被超linked,而让所有其他单元格只显示{{d}}?
Flask 中的默认模板引擎是 jinja2。
在 jinja2 中,您可以检查循环索引,这意味着您可以执行以下操作。
{% for d in row %}
{% if loop.index == 1 %} # You can also use loop.index0 for 0-based indexing
<td><a href="/testresult?query={{ d }}">{{ d }}</a></td>
{% else %}
<td>{{ d }}</td>
{% endif %}
{% endfor %}
您还可以使用以下语法跳过行列表中的第一个元素:
{% for d in row[1:] %}
在您的 table 中,将 for 循环放在 tr
元素之外。
<table border="1" cellpadding="5" cellspacing="5">
{% for row in data %}
<tr>
<td><a href="/testresult?query={{ row.d }}">{{ row.d }}</a></td>
{% endfor %}
</tr>
</table>