我需要使用SQLAlchemy进行动态查询处理。
考虑有一个表有三个字段名称,年龄,城市。
从表中我需要获取具有(s,r,t)字符的城市名称的城市。
对于我所构建的SQLAlchemy Query,如下所示:
query = query.filter(or_(model.city.like('%s%'),model.city.like('%r%'),model.city.like('%t%')))
它按预期工作。
但现在我的问题是在代码执行期间处理值。
因为在我的情况下,需要从python中的列表中获取这些字符。
考虑python list:
['s','m','n']
所以现在这里需要动态地查询列表中的那些值。
我也无法确定列表中的条目数量,因此它应该是动态的。
这里的主要目标是做"喜欢"和"或"在SQLAlchemy中动态。
答案 0 :(得分:2)
您可以通过_or()
方法映射列表字符,并将结果展开到chars = ['s','m','n']
query = query.filter(or_(*map(
lambda x: model.city.like('%{}%'.format(x)),
chars
)))
。有点像:
admin/edit-contact-form.php