已解决
关于sqlModel 实现查询表单入参空值和模糊匹配一次性查询
来自网友在路上 11058105提问 提问时间:2023-11-21 18:25:53阅读次数: 105
最佳答案 问答题库1058位专家为你答疑解惑
在处理表单提交后,后端 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 查询。这样,只有那些有值的条件会被添加到查询中,而空值条件则会被忽略。在这个例子中,等值条件用于非空字段,如果需要模糊查询,可以使用 like
或 ilike
方法。
使用示例:
with Session(engine) as session:results = dynamic_query(session, form_data)print(results)
这将返回符合表单数据条件的项目列表。请确保在实际应用中适当处理和验证用户输入以防止 SQL 注入等安全问题。
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"关于sqlModel 实现查询表单入参空值和模糊匹配一次性查询":http://eshow365.cn/6-41459-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: Java之反射获取和赋值字段
- 下一篇: 如何判断一个公司是否为空壳公司