如何根据 sqlalchemy 中的两列进行过滤

Posted

技术标签:

【中文标题】如何根据 sqlalchemy 中的两列进行过滤【英文标题】:how can I filter base on two columns in sqlalchemy 【发布时间】:2022-01-14 08:58:57 【问题描述】:

我有一个烧瓶应用程序和一个包含两列的表格,一列用于日期,一列用于小时。 我有一个约会表格,我想检查日期+时间是否已经用完。 我的模块如下所示:


form = DateForm()

if form.validate_on_submit():

    if Appointment.query.filter_by(date=form.date.data).filter_by(hour=form.hour.data):

但看起来唯一接受的过滤器是日期,因为即使时间有空也会提出我的闪信。即,它因为日期而拒绝我 关于如何过滤时间列的任何建议? 我的目标是拒绝,例如,如果我的表中存在 10/12/2021 10:00,但如果 11:00 可用则接受。 我希望我已经清楚我想要实现的目标 提前致谢

【问题讨论】:

别忘了用.first().all()等来实际抓取对象... Appointment.query.filter_by(date=form.date.data,hour=form.hour.data)你可以使用filter_by设置多个过滤器,或者使用.filter和and_表达式。 我已经测试过了,还是不行。 【参考方案1】:

终于可以解决了! 显然,这是一个格式类型的问题。我像这样添加到 form.hour.data 中: form.hour.data.strftime('%H:%M')

我也像这样改变了一点代码:


如果 Appointment.query.filter( 和_( 约会.date.like(form.date.data), Appointment.hour.like(form.hour.data.strftime('%H:%M')) ) ).first():

通过这个简单的修改,验证开始按我的预期工作。

【讨论】:

以上是关于如何根据 sqlalchemy 中的两列进行过滤的主要内容,如果未能解决你的问题,请参考以下文章

sqlalchemy 过滤多列

s-s-rS 2008 图表:对图表中的图表进行选择性过滤

将数据框中的两列或多列合并为具有新名称的新列

根据两个不同表上的两列对完全连接进行排序

SQLAlchemy如何检查值是否在两列中的值之间?

如何根据列的值过滤 SQLAlchemy 结果?