- 我在postgres表A和B中有两个表(它们在列名和列数方面完全相同(
- 我在引导程序中有2张表
- 我想从postgres表A查询到(bootstrap(的表A
- 我想从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 %}
这将允许您根据网络密钥构建表,然后循环浏览项目。
免责声明:我脑子里写的代码,如果你复制粘贴,可能不起作用。由您进行异常处理和检查