SenWeaver SenWeaver
首页
  • 介绍
  • 快速开始
  • 目录结构
  • 模块开发

    • 概述
    • 配置
    • 编码
  • 数据库

    • 概述
    • 查询数据
    • 添加数据
    • 更新数据
    • 删除数据
  • 其他

    • 常见问题
在线演示 (opens new window)
赞助
关于
Gitee (opens new window)
Github (opens new window)
首页
  • 介绍
  • 快速开始
  • 目录结构
  • 模块开发

    • 概述
    • 配置
    • 编码
  • 数据库

    • 概述
    • 查询数据
    • 添加数据
    • 更新数据
    • 删除数据
  • 其他

    • 常见问题
在线演示 (opens new window)
赞助
关于
Gitee (opens new window)
Github (opens new window)
  • 指南

    • 介绍
    • 快速开始
    • 目录结构
  • 模块开发

    • 概述
    • 配置
    • 编码
  • 数据库

    • 概述
    • 查询数据
      • 查询数据
      • 根据字典动态构建查询条件
    • 添加数据
    • 更新数据
    • 删除数据
  • 其他

    • 常见问题
目录

查询数据

# 查询数据

支持高级过滤选项,比如大于 (__gt)、小于 (__lt) 以及它们的包含性对应词 (__gte, __lte) 等运算符来查询记录。过滤器支持在单个记录 (get)、获取多个记录 (get_multi)、检查记录是否存在 (exists)、计数 (count)、更新 (update) 和删除 (delete)中使用。

当前支持的单参数过滤器有:

  • __gt - 大于
  • __lt - 小于
  • __gte - 大于或等于
  • __lte - 小于或等于
  • __eq - 等于
  • __ne - 不等于
  • __is - 用于测试 True, False 和 None 的身份
  • __is_not - "is" 的否定
  • __like - SQL "like" 搜索特定文本模式
  • __notlike - "like" 的否定
  • __ilike - 不区分大小写的 "like"
  • __notilike - 不区分大小写的 "not like"
  • __startswith - 文本以给定字符串开头
  • __endswith - 文本以给定字符串结尾
  • __contains - 文本包含给定字符串
  • __match - 数据库特定的匹配表达式
  • __between - 在两个数值之间
  • __in - 包含在内
  • __not_in - 不包含在内
  • __or - 用于 OR 表达式的库支持运算符
crud = SenweaverCRUD(Item)
# 查询单个记录
item = await crud.get(db=db,id=1)
# 查询多个记录 price>=1 的所有记录
items = await crud.get_multi(
    db=db,
    price__gte=1,
)
# SELECT * FROM item WHERE price BETWEEN 1 AND 10;
items = await crud.get_multi(
    db=db,
    price__between=(1, 10),
)
# SELECT * FROM item WHERE price <= 1 OR price >= 10;
items = await crud.get_multi(
    db=db,
    price__or={'lte': 1, 'gte': 10},
)
# SELECT * FROM item WHERE price <= 10 AND num >= 2;
items = await crud.get_multi(
    db=db,
    price__lte=10,
    num__gte=2,
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 根据字典动态构建查询条件

支持树状结构复杂查询

{
	"__or": [{
		"__or": [{
			"__or": [{
				"dept_belong_id": "85044279115846",
				"num__gt": 1,
				"price__or": {
					"lte": 1,
					"gte": 10
				},
                "type__in":[2,3]
			}, {
				"dept_id": "85044279115846"
			}]
		}]
	}, {
		"__false": null
	}]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
上次更新: 2025/02/28, 10:58:46
概述
添加数据

← 概述 添加数据→

最近更新
更多文章>
Theme by Vdoing | Copyright © 2025-2025 SenWeaver | MIT License | 桂ICP备16009365号-9 | 桂公网安备45031202000442号