当前位置: 首页 > news >正文

关于sqlModel 实现查询表单入参空值和模糊匹配一次性查询

在处理表单提交后,后端 SQL 查询部分空值和部分模糊值时,可以使用 SQLModel 构建动态查询。你可以根据表单数据动态构建 SQL 查询,并且只添加那些非空的、有值的条件。

以下是一个示例,假设你有一个模型 Item

from sqlmodel import SQLModel, Field, Sessionclass Item(SQLModel, table=True):id: int = Field(primary_key=True)name: strdescription: str = None

然后,你的表单数据可能是一个字典,其中包含用户提交的查询条件:

form_data = {"name": "example","description": None  # 或者 "some_description"
}

接下来,你可以使用 SQLModel 构建查询:

from sqlmodel import selectdef dynamic_query(session, form_data):query = select(Item)# 添加非空的等值条件for field, value in form_data.items():if value is not None:query = query.where(getattr(Item, field) == value)# 如果需要模糊查询,你可以修改为以下方式:# for field, value in form_data.items():#     if value is not None:#         query = query.where(getattr(Item, field).like(f"%{value}%"))return session.exec(query).all()

通过上述函数,你可以根据表单数据动态构建 SQL 查询。这样,只有那些有值的条件会被添加到查询中,而空值条件则会被忽略。在这个例子中,等值条件用于非空字段,如果需要模糊查询,可以使用 likeilike 方法。

使用示例:

with Session(engine) as session:results = dynamic_query(session, form_data)print(results)

这将返回符合表单数据条件的项目列表。请确保在实际应用中适当处理和验证用户输入以防止 SQL 注入等安全问题。

http://www.lryc.cn/news/239196.html

相关文章:

  • 数据仓库架构之详解Kappa和Lambda
  • Banana Pi BPI-R3 Mini 开源路由器,也能拍出艺术美感
  • Django高级之-分页器
  • Vue-报错No “exports“ main defined in xx
  • EL-input添加双击或者单击事件
  • OpenCV快速入门:绘制图形、图像金字塔和感兴趣区域
  • Three.js相机模拟
  • Verilog基础:仿真时x信号的产生和x信号对于各运算符的特性
  • 穿越数据的迷宫-数据管理知识介绍
  • 3
  • 【python学习】基础篇-常用模块-multiprocessing模块:多进程
  • JAVA SQL
  • [Linux] 进程入门
  • 深入解析数据结构与算法之堆
  • 信息化项目质量保证措施
  • es的优势
  • sonar对webgoat进行静态扫描
  • opencv-重点知识
  • 上海亚商投顾:北证50指数大涨 机器人概念股掀涨停潮
  • 2.4G无线收发芯片 XL2400P使用手册
  • ZC序列理论学习及仿真
  • 利用OpenCV实现图片中导线的识别
  • 关于VITS和微软语音合成的效果展示(仙王的日常生活第1-2209章)
  • 普乐蛙VR航天航空巡展项目来到了第七站——绵阳科博会
  • 行情分析——加密货币市场大盘走势(11.22)
  • QT--MP3项目数据库数据表设计与实现_歌曲搜索
  • gzip 压缩优化大 XML 响应的处理方法
  • 数字化文旅系统,让景区营销变得更加简单!
  • 配置命令别名
  • zookeeper应用之分布式队列