【发布时间】:2019-11-24 10:31:56
【问题描述】:
我想在我的网页上创建一个链接到 5 个表的数据库的搜索功能。
这个想法是用户可以选择要搜索的表并输入搜索词,它将返回结果列表。
显然我可以使用 5 个 if 语句来做到这一点,但似乎应该有更简单的方法。
这段代码是我尝试过的,但由于某种原因,当我将 item 和 table 变量放入查询而不是实际的列名时,它不起作用。仅当我在 table 和 table.item 中键入特定术语时它才有效。
if 'form.submitted' in request.params:
#search term
search = request.params['body']
#table to be searched
table = request.params['table']
list = eval(table).__table__.columns._data.keys()
results = {}
for item in list:
try:
searchdb = request.dbsession.query(table).filter(table.item==search).all()
results[item]=searchdb
except:
continue
return (results)
我想知道这是否可能,或者我应该放弃并写 5 个 if 语句
【问题讨论】:
标签: python mysql sqlalchemy pyramid