【发布时间】:2017-07-29 16:00:36
【问题描述】:
很抱歉标题令人困惑,很难弄清楚如何措辞这个问题。
目前我有一个 sqllite 数据库,其中有一些用户,他们有名字、姓氏、出生日期、高中和高中班级。 db 使用 sqlalchemy 连接到烧瓶。我想知道的是对于我的搜索功能,我有 4 个输入,我想拥有它,所以如果不使用输入,那么它就不会在搜索查询中使用。假设该人搜索姓氏和高中,我希望它仅使用这些参数进行搜索。我试过用一堆 if 语句来做这件事,但看起来很乱,必须有更好的方法。下面是我使用的查询,但只有在全部 4 个都填满时才有效。有没有比一堆带有不同查询的 if 语句更好的方法?我环顾四周,没有发现任何东西。
userq=User.query.filter_by(first_name=fname_strip,last_name=lname_strip,hs_class=hs_class_strip).all()
【问题讨论】:
-
在调用
filter_by时,省略你不想搜索的元素对应的kwargs -
有没有让它不使用设置为 none 或 '' 的 kwargs?
-
不要传递
kwargs并将不需要的参数设置为''或None- 改为删除空值。
标签: python flask sqlalchemy flask-sqlalchemy