我知道您可以通过提供**kwargs
,为SQLAlchemy的查询构建动态过滤器filter_by
。
例如
filters = {'id': '123456', 'amount': '232'}
db.session.query(Transaction).filter_by(**filters)
以下是我的问题:
如果我需要通过“大于”或“小于”子句进行查询怎么办?例如(原始SQL):
select * from transaction t
where t.amount > 10 and t.amount < 100;
filter_by
我建议不要使用filter
,而不是使用,它为您提供了更多选择。
例如(来自手册):
db.session.query(MyClass).filter(
MyClass.name == 'some name',
MyClass.id > 5,
)
关于您的情况:
filters = (
Transaction.amount > 10,
Transaction.amount < 100,
)
db.session.query(Transaction).filter(*filters)
问题内容: 我刚刚开始使用SQLAlchemy。我决定使用它,因为我在sqlite查询中间使用了很多字符串表达式。 所以,这就是我的问题。我的桌子上有很多设备,每个设备都有维护级别的日期。关键是用户可以选择他想在屏幕上看到的维护级别。因此,我应该为他选择的每种维护级别组合“调整”我的SQLAlchemmy。 例如,在原始SQLite中。 SELECT * WHERE(设备IN [])和m_leve
问题内容: 我们需要创建SQLAlchemy类来访问多个外部数据源,这些数据源会随着时间的推移而增加。我们为核心ORM模型使用了声明式基础,并且我知道我们可以使用autoload = True手动指定新的ORM类,以自动生成映射。 问题是我们需要能够采用以下方式动态生成它们: 并动态地将其转换为如下所示: 我们不希望类的持久时间长于打开连接,执行查询然后关闭连接所需的时间。因此,理想情况下,我们可
问题内容: 我正在寻找一种使用SQLAlchemy动态构造过滤器的方法。也就是说,给定该列,运算符名称和比较值,即可构造相应的过滤器。 我将尝试使用一个示例进行说明(这将用于构建API)。假设我们有以下模型: 我想将查询映射到过滤器。例如, 应该产生 应该产生 我环顾四周,看看它是如何完成的,但是找不到一种不涉及手动将每个运算符名称映射到比较器或类似名称的方法。例如,Flask- Restless
问题内容: 我想编写一个查询,在其中我可以动态地将各种限制传递给SQLA Core。例如,我希望能够在查询中指定或不动态指定。通过限制指令可能会很好,或者可能会有更标准的方法。 我已经阅读了教程和API文档,但我想知道: 对于SQLA Core中的动态限制,什么是惯用合同,它将如何实施? 问题答案: 您可以毫无问题地动态构建查询。例如,您可以执行以下操作: 那里只是限制的字典,如。这将产生一个查询
问题内容: 我正在寻找以下列方式属于父类的对象的列表: SQLAlchemy examples文件夹具有简单的多对一关系,在我的示例中,类B和C是A的“父”类(而不是相反),但是我一生都无法解决如何将其逆转为一对多,然后添加双向关系以使其变为多对多。 谁能帮我这个忙吗? 问题答案: 这有点痛苦,并且显然需要更多的抛光,但是就像这样:
问题内容: 我有一个Webapp,允许用户创建自己的字段,以供以后使用表单呈现。 我有一个像这样的Formfield模型: 我用来代表字段的类型,无论是哪种类型(复选框,输入,以后都会有更多)。 如你所见,每个字段都有一个form_id的FK。 我正在尝试为给定的form_id生成动态表单。问题是我需要确定要为每个Formfield呈现的字段的类型。因此,我还需要在某个时候处理字段类型。 我想一个