python - 如何创建动态过滤器?

标签 python sqlite dynamic filter sqlalchemy

我有一张设备表,每个设备都有维护级别的日期。用户可以选择维护级别。因此,我应该针对所选维护级别的每个组合调整我的 SQLAlchemy。例如:

SELECT * WHERE (equipment IN []) AND m_level1 = DATE AND m_level2 = DATE ....)

因此可以为每个 if 条件组合,具体取决于复选框我使用多个字符串来达到我的目标,但我想使用 SQLAlchemy 改进查询。

最佳答案

我假设您正在使用 ORM。

在那种情况下,filter 函数返回一个查询对象。您可以通过执行类似的操作来有条件地构建查询

query = Session.query(schema.Object).filter_by(attribute=value)
if condition:
    query = query.filter_by(condition_attr=condition_val)
if another_condition:
    query = query.filter_by(another=another_val)

#then finally execute it

results = query.all()

关于python - 如何创建动态过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37336520/

相关文章:

c++ - 为什么这会在 ideone 和 visual studio 中显示运行时错误,但在代码块中却没有?

python - 为具有多个输入和输出的函数并行化 for 循环

python - 使用 bokeh 或 matplotlib 的 Pandas DataFrame 分层饼图/ donut chart

c# - SQLite 是否有 .NET/C# 包装器?

c - 如何使用 C API 检查 SQLite 列中的值是否为 NULL?

android - 在android中访问动态生成的 View 的元素

Python:吸收键盘输入的换行符

python - 包裹时如何防止seaborn FacetGrid重叠

macos - 有谁知道 Xamarin.Mac/Monomac 上 SQLite 的一个很好的例子吗?

algorithm - 是否有针对此类问题的特定算法?