flask-如何查询/迭代2个独立的引导表


  1. 我在postgres表A和B中有两个表(它们在列名和列数方面完全相同(
  2. 我在引导程序中有2张表
  3. 我想从postgres表A查询到(bootstrap(的表A
  4. 我想从postgres表B查询到(bootstrap(的表B

假设我想使用python列表来实现这一点


aList = ['A', 'B']
for network in aList:
db.session.execute("SELECT * from booTable"+network+" ")

所以在python/jinja中如何进行上述查询,如果网络A,则在index.html中显示在表A中,如果网络B,则将其放在表B中。

目前我拥有的是:

@app.route('/')
def Index():
tableA = db.session.execute("SELECT * from booTableA").fetchall()
tableB = db.session.execute("SELECT * from booTableB").fetchall()
return render_template("index.html", tableA=tableA, tableB=tableB)

在index.html中,这就是我所拥有的:

<table class="table">
{% for a in tableA %}
<tr>
<td>{{a.name}}</td>
<td>{{a.age}}</td>
</tr>
</table>
<table class="table">
{% for b in tableB%}
<tr>
<td>{{b.name}}</td>
<td>{{b.age}}</td>
</tr>
</table>

有一个针对多个表的执行查询来完成上述任务将是非常好的,因为如果我有多个网络/表+网络+";而不是对每个网络/表执行多选查询。如能为解决上述问题提供任何帮助,我们将不胜感激。

这里有一种方法:

from collections import OrderedDict
aList = ['A', 'B']
results = OrderedDict()
for network in aList:
ret_ = db.session.execute("SELECT * from booTable"+network+" ")
results[network] = ret_

然后在你的精灵:

{% for key, values in results.items() %}
<table class="table">
{% for v in values %}
{% endfor %}
</table>
{% endfor %}

这将允许您根据网络密钥构建表,然后循环浏览项目。

免责声明:我脑子里写的代码,如果你复制粘贴,可能不起作用。由您进行异常处理和检查

最新更新