我是sqlalchemy的新手,可以使用一些帮助.我正在尝试编写一个小应用程序,我必须动态更改select语句.所以我这样做s = select([files]),然后我添加过滤器s = s.where(files.c.createtime.between(val1, val2)).这很好用,但只能使用AND-conjunction.因此,当我想要所有条目时createtime (between 1.1.2009 and 1.2.2009) OR createtime == 5.2.2009,我遇到的问题是我不知道如何使用不同的过滤器调用来实现这一点.由于程序逻辑,它不可能使用s= s.where(_or(files.c.createtime.between(val1, val2), files.c.createtime == DateTime('2009-02-01')))
谢谢你,Christof
Ant*_*sma 26
您可以从列表动态构建或子句:
clauses = []
if cond1:
clauses.append(files.c.createtime.between(val1, val2))
if cond2:
clauses.append(files.c.createtime == DateTime('2009-02-01'))
if clauses:
s = s.where(or_(*clauses))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4993 次 |
| 最近记录: |