type
status
date
slug
summary
tags
category
icon
password
😀
Amis 是一款功能强大的前端低代码框架,而 SQLModel 则是一种简洁高效的 Python ORM(对象关系映射)工具。通过结合使用这两个工具,我们可以轻松构建灵活的 Web 应用程序。本文将探讨如何利用 Amis 和 SQLModel 实现组合条件配置,以满足复杂的数据查询需求。
在开发 Web 应用程序时,数据查询常常需要根据多个条件进行筛选,以获取特定的数据结果。通过使用 Amis 和 SQLModel,我们可以轻松地配置和处理这些组合条件。
 

📝 Amis的组合条件组件

用于设置复杂组合条件,支持添加条件,添加分组,设置组合方式,拖拽排序等功能。
 

前端配置

通过Amis的在线配置台,就可轻松拖拽并配置组合条件的可选内容。
notion image
可以轻而易举的通过“快速构建[条件组件]”完成前端的配置。

支持条件

通过该组件,用户可以定义多个子条件,并选择它们之间的逻辑关系。每个子条件由一个字段、运算符和值组成,可以进行等于、大于、小于、范围等各种类型的比较。用户还可以根据需要添加更多的子条件,以构建复杂的查询逻辑。
notion image
notion image
 

📝 后端:解析组合为SQL查询

这段代码包含两个函数:generate_sqlmodel_condition 和 generate_sql_query
generate_sqlmodel_condition 函数用于解析条件,并根据条件的类型生成相应的 SQL 语句。它接收一个条件对象和一个可选的表名参数,并返回相应的 SQL 语句。
generate_sql_query 函数用于组合 SQL 查询语句。它接收条件列表、连接词(默认为 WHERE)和可选的表名参数,并使用 generate_sqlmodel_condition 函数生成条件部分的 SQL 语句,最终返回完整的 SQL 查询语句。
在使用这两个函数时,你可以传递条件对象、连接词和表名来生成相应的 SQL 查询语句。如果条件不符合要求,会抛出一个值错误异常。
最后仅需要将generate_sql_query 的返参放在SQL语句中恰当的位置即可。如:

📝 后端:解析组合为SQLModel的查询

 
如果能够看懂上述代码的结构,那么往下我将基于此继续改造使用SQLModel进行解析的语句组合。
在后端开发中,使用 SQLModel 可以方便地进行 SQL 查询的构建和执行。在这篇博客中,我们将介绍如何使用 SQLModel 解析和组合后端 SQL 查询语句。

1️⃣ 从列名获得SQLModel的列对象

首先,我们需要导入 SQLModel 库,并定义一个辅助函数 get_column_by_name。该函数用于根据表模型和列名获取对应的列对象。

2️⃣ 将条件递归解析和组合

接下来,我们定义了一个函数 generate_sqlmodel_condition,用于解析条件并生成相应的 SQLModel 条件对象。该函数接收一个条件对象和一个 SQLModel 表模型作为参数,并返回相应的 SQLModel 条件对象。
在这个函数中,我们首先判断条件是否包含连接符。如果包含连接符,则遍历子条件列表,并根据连接符生成相应的 SQLModel 条件对象。这里使用了 and_ 和 or_ 函数来表示连接符。
如果条件中没有连接符,则为单个子条件。根据子条件的左、中、右三个字段生成相应的 SQLModel 条件对象,使用 SQLModel 提供的函数进行比较、模糊匹配、范围查询等操作。

3️⃣ 封装功能

最后,我们定义了一个函数 generate_sqlmodel_query,用于根据条件生成完整的 SQL 查询语句。该函数接收一个 SQLModel 查询对象、条件列表和表模型作为参数,并使用 generate_sqlmodel_condition 函数生成条件部分的 SQLModel 条件对象,然后通过 where 方法将条件应用到查询对象上。
通过调用 generate_sqlmodel_query 函数,我们可以很方便地生成带有条件的 SQL 查询语句。

4️⃣ 看一个示例

以下是一个示例:
在上面的示例中,我们创建了一个查询对象 query,然后定义了两个条件:年龄大于18岁和国家等于"CN"。使用 generate_sqlmodel_query 函数,我们将条件应用到查询对象上,并生成最终的 SQL 查询语句 sql_query。接下来,我们使用 SQLModel 的会话对象执行查询,并遍历结果集进行输出。
通过以上的代码和解释,我们可以看到如何使用 SQLModel 解析和组合后端 SQL 查询语句。这样的方法可以使得 SQL 查询语句的生成更加灵活和可维护,同时提高开发效率。

🤗 总结归纳

Amis 前端框架中的 "组合条件" 组件是一个强大的工具,可以帮助我们构建复杂的查询条件,用于过滤和搜索数据。通过解析和组合 SQL 语句,我们可以构建灵活的查询功能,并根据用户的输入动态生成相应的查询语句。
SQLModel 库可以帮助我们更加灵活和可维护地生成 SQL 查询语句,提高开发效率。通过使用 SQLModel 解析和组合后端 SQL 查询语句,我们可以将查询条件的构建过程更加模块化和可扩展,提高代码的可读性和可维护性。同时,SQLModel 提供了丰富的函数和操作符,使得查询条件的生成变得简洁和直观。
总而言之,使用 Amis 的 "组合条件" 组件和 SQL 语句解析和组合,可以帮助开发人员提高开发效率,同时为用户提供更好的查询和搜索体验。
 
 
需要补充的是,博客中存在部分文字内容由人工智能语言模型生成的,因此可能与其他来源的内容相似。相关引用已注明出处,Noel 尊重并感谢每位创作者。若有不恰当之处,欢迎联系我与我交流,我将在24h内作出修正。
本博客的目的是为了提供有用的信息和见解。感谢您阅读本博客,文章涉及代码部分属Noel Du创作,转载请注明出处。 2024 Noel Du. All rights reserved.
win本地化部署KubeflowSQLModel的自连接
NoelDu
NoelDu
胖🍚且菜鸟
公告
type
status
date
slug
summary
tags
category
icon
password
🎉NoelDu 个人站点开张啦🎉
-- 感谢您的支持 ---