我想在我的网页上创建一个搜索功能,这是链接到数据库的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语句。
https://stackoverflow.com/questions/57044531
复制相似问题