如何解决烧瓶中来自python的jinja2动态html表
我想用来自2个SQL查询的值在postgresql中创建动态表。 从第一个查询开始,我想创建前6行,并且应将7行链接到文件。
我首先创建值value2,然后从中创建表。
<table class="table table-striped table-bordered" id="xxx" width="100%" data-name="mytable">
<thead>
<tr>
<th onclick="sortTable(0,'xxx')">aaa</th>
<th onclick="sortTable(1,'xxx')">bbb</th>
<th onclick="sortTable(2,'xxx')">ccc</th>
<th onclick="sortTable(3,'xxx')">ddd</th>
<th onclick="sortTable(4,'xxx')">eee</th>
<th onclick="sortTable(5,'xxx')">fff</th>
</tr>
</thead>
<tbody>
{% for row in value2%}
<tr>
<td>{{row[0]}}</td>
<td>{{row[1]}}</td>
<td>{{row[2]}}</td>
<td>{{row[3]}}</td>
<td>{{row[4]}}</td>
<td>{{row[5]}}</td>
</tr>
{% endfor %}
</tbody>
</table>
从第二个查询中,我获得value11作为文件的链接,并且我希望将此文件的链接设置为表中的最后一列
{% for plik in value11 %}
<td>
<form action="{{ url_for('static',filename=plik|string +'.xml') }}">
<input type="submit" value="pokaz plik" />
</form>
</td>
{% endfor %}
任何人都可以帮助创建此表吗? 我尝试使用此代码,但这是错误的想法; /
<table class="table table-striped table-bordered" id="czyodramke" width="100%" data-name="mytable">
<thead>
<tr>
<th onclick="sortTable(0,'xxx')">fff</th>
</tr>
</thead>
<tbody>
{% for row in value2%}
{% for plik in value11 %}
<tr>
<td>{{row[0]}}</td>
<td>{{row[1]}}</td>
<td>{{row[2]}}</td>
<td>{{row[3]}}</td>
<td>{{row[4]}}</td>
<td>{{row[5]}}</td>
<td>
<form action="{{ url_for('static',filename=plik|string +'.xml') }}">
<input type="submit" value="pokaz plikl" />
</form>
</td>
</tr>
{% endfor %}
{% endfor %}
</tbody>
</table>
这就是我获得value2和value11的方式
cursor.execute (slq_query)
data2 = cursor.fetchall()
data11 = cursor.fetchall()
data11len = (len(data11))
lst = list(range(data11len))
print (lst)
for i in range (len(data11)):
naszplik = ''.join(data11[i])
with open(f"project/static/{i}.xml","w",encoding="utf-8") as f:
f.write(naszplik)
return render_template('wyniki.html',value2=data2,value11=lst)
解决方法
每当在Jinja中使用服务器中的变量时,都必须用双花括号将它们括起来:{{ variable }}
。不这样做将导致Jinja并因此Flask忽略您的变量。我认为您可能会在某些情况下缺少括号。例如,您这样做:
{% for plik in value11 %}
<td>
<form action="{{ url_for('static',filename=plik|string +'.xml') }}">
<input type="submit" value="pokaz plik" />
</form>
</td>
{% endfor %}
您多次使用plik
,但这只是单词“ plik”的字符串,而不是分配给value11
当前迭代的变量。解决起来非常容易,只需将{{ }}
包装起来,看看是否能解决问题
我的问题不仅是第二个查询,我想创建表格形式的2个变量,如下表:
|aaa |bbb |ccc |ddd |eee |plik |
|aaa1 |bbb1 |ccc1 |ddd1 |eee1 |plik1 |
|aaa2 |bbb2 |ccc2 |ddd2 |eee2 |plik2 |
现在我有2个不同的表: 第一张桌子
|aaa |bbb |ccc |ddd |eee |
|aaa1 |bbb1 |ccc1 |ddd1 |eee1 |
|aaa2 |bbb2 |ccc2 |ddd2 |eee2 |
第二张桌子
|plik |
|plik1 |
|plik2 |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。