gpt4 book ai didi

python - SQLAlchemy - 从 dict 动态构建查询过滤器

转载 作者:IT老高 更新时间:2023-10-28 21:55:05 25 4
gpt4 key购买 nike

所以我有一个从网页传递的字典。我想根据字典动态构建查询。我知道我能做到:

session.query(myClass).filter_by(**web_dict)

但是,这仅在值完全匹配时才有效。我需要做“喜欢”过滤。我使用 __dict__ 属性的最佳尝试:

for k,v in web_dict.items():
q = session.query(myClass).filter(myClass.__dict__[k].like('%%%s%%' % v))

不确定如何从那里构建查询。任何帮助都会很棒。

最佳答案

你在正确的轨道上!

您想要做的第一件事是使用 getattr 访问属性,而不是 __dict__getattr 总是会做正确的事情,即使(可能是更复杂的模型的情况)映射的属性不是列属性。

另一个缺失的部分是您可以多次指定 filter(),只需将旧查询对象替换为该方法调用的结果即可。所以基本上:

q = session.query(myClass)
for attr, value in web_dict.items():
q = q.filter(getattr(myClass, attr).like("%%%s%%" % value))

关于python - SQLAlchemy - 从 dict 动态构建查询过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7604967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com