本文主要是介绍关于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 查询。这样,只有那些有值的条件会被添加到查询中,而空值条件则会被忽略。在这个例子中,等值条件用于非空字段,如果需要模糊查询,可以使用 like
或 ilike
方法。
使用示例:
with Session(engine) as session:results = dynamic_query(session, form_data)print(results)
这将返回符合表单数据条件的项目列表。请确保在实际应用中适当处理和验证用户输入以防止 SQL 注入等安全问题。
这篇关于关于sqlModel 实现查询表单入参空值和模糊匹配一次性查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!