Flask SqlAlchemy 如何使用 **kwargs 和类似列的表达式调用 filter_by
Flask SqlAlchemy how to call filter_by with **kwargs and column like expressions
我正在尝试动态过滤对我的数据库的查询,我使用
List = mytable.query.filter_by(**kwargs).order_by(desc(inscrits.id)).all()
其中一列是地址,我想使用表达式 Like %partof address%
过滤该地址
所以我所做的就是这个
if (request.form.get('Address')):
kwargs['Address'] = 'Address.Lik(%'+request.form.get('Address')+'%)'
它没有按预期工作,如果可能我该怎么做?
谢谢
您需要查询 filter 方法。它接收 SQLAlchemy 条件表达式列表。您的示例将如下所示:
args = []
if (request.form.get('Address')):
args.append(mytable.address.like('%%%s%%' % request.form.get('Address')))
# Here will be another possible arguments
items = mytable.query.filter(*args).order_by(desc(inscrits.id)).all()
我正在尝试动态过滤对我的数据库的查询,我使用
List = mytable.query.filter_by(**kwargs).order_by(desc(inscrits.id)).all()
其中一列是地址,我想使用表达式 Like %partof address%
过滤该地址所以我所做的就是这个
if (request.form.get('Address')):
kwargs['Address'] = 'Address.Lik(%'+request.form.get('Address')+'%)'
它没有按预期工作,如果可能我该怎么做?
谢谢
您需要查询 filter 方法。它接收 SQLAlchemy 条件表达式列表。您的示例将如下所示:
args = []
if (request.form.get('Address')):
args.append(mytable.address.like('%%%s%%' % request.form.get('Address')))
# Here will be another possible arguments
items = mytable.query.filter(*args).order_by(desc(inscrits.id)).all()