You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLAlchemy查询如何添加not逻辑从句?Flask-AppBuilder场景用法咨询

实现方案

首先需从SQLAlchemy导入逻辑运算符函数:

from sqlalchemy import not_, and_, or_

方案1:按要求的NOT+AND转换实现

对应SQL语句 select * from number where not (id<>'1232' and id<>'34343') 的代码写法:

# 请将代码中的Number替换为你自己的模型类名
query_result = self.datamodel.filter(
    not_(
        and_(
            Number.id != '1232',
            Number.id != '34343'
        )
    )
).all()

方案2:直接使用OR逻辑实现(更简洁,无需转换)

对应原本OR需求SQL select * from number where id='1232' or id ='34343' 的直接写法:

# 请将代码中的Number替换为你自己的模型类名
query_result = self.datamodel.filter(
    or_(
        Number.id == '1232',
        Number.id == '34343'
    )
).all()

补充说明

  • filter_by() 仅支持等值条件,默认用AND拼接,复杂逻辑(不等、OR、NOT等)需要用 filter() 方法传入SQLAlchemy列表达式实现
  • 上述写法也兼容直接使用SQLAlchemy Session查询的场景,只需把self.datamodel.filter替换为db.session.query(Number).filter即可

内容的提问来源于stack exchange,提问作者user504909

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:12:00