首页 > 其他 > 详细

Sanic二十六:Sanic + tortoise-orm 之查询(QuerySet )

时间:2021-09-01 14:34:26      阅读:21      评论:0      收藏:0      [点我收藏+]

 

数据

技术分享图片

技术分享图片

 

由于在创建模型的时候,是继承的tortoise.Model,看看tortoise.Model都提供了什么方法,如果发现又不满足使用场景的情况,再来修改或者补充

技术分享图片

技术分享图片

技术分享图片

 

看看有用的方法

1、filter:使用给定的过滤条件创建 QuerySet,即查询满足指定条件的数据

技术分享图片

2、exclude:使用给定的排除过滤条件创建 QuerySet,即查询不满足给定条件的数据

技术分享图片

3、all:从根据查询条件获得的结果中获取全部数据

技术分享图片

4、first:从根据查询条件获得的结果中获取第一条数据

技术分享图片

 

使用示例

技术分享图片

技术分享图片

 

其实从源码可以看出,这些个查询方法都是调的 cls._meta.manager.get_queryset() 方法,那么我们可以看看这个方法到底来自于哪里,都做了什么

技术分享图片

从源码看,都是使用的 QuerySet 这个类,那么这个类有哪些方法呢

技术分享图片

关键方法一:_clone,执行所有操作都会先使用_clone获取一个新的QuerySet对象

技术分享图片

关键方法二:_filter_or_exclude,用于执行 filter 和 exclude 两个查询逻辑

技术分享图片

 

具体提供的查询方法

1、 filter 和 exclude 上面已经演示过了,这里就不演示了

技术分享图片

2、all()其实就是调用_clone方法获取克隆对象,first()其实就是查询集里面执行了个limit1

技术分享图片

3、count,统计数量

技术分享图片

技术分享图片

技术分享图片 

4、exists:判断查询集是否存在

技术分享图片

技术分享图片

技术分享图片

5、explain:查看执行计划

技术分享图片

技术分享图片

技术分享图片

6、get:作用和filter().first()一样

技术分享图片

技术分享图片

技术分享图片

7、get_or_none:有数据则直接获取,没数据则返回None

技术分享图片

技术分享图片

技术分享图片

8、group_by和order_by

技术分享图片

技术分享图片

技术分享图片

9、limit,获取指定的条数

技术分享图片

技术分享图片

技术分享图片

10、offset:偏移

技术分享图片

技术分享图片

技术分享图片

11、values:返回字典,不返回对象,自动序列化

技术分享图片

技术分享图片

技术分享图片

技术分享图片

12、values_list,返回数据的值,不返回字段名,可指定要返回的字段

技术分享图片

技术分享图片

技术分享图片

 

更多方法见源码或官方文档

 

Sanic二十六:Sanic + tortoise-orm 之查询(QuerySet )

原文:https://www.cnblogs.com/zhongyehai/p/15202038.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!