zoukankan      html  css  js  c++  java
  • Sanic二十六:Sanic + tortoise-orm 之Model、QuerySet提供的查询方法

    数据

    由于在创建模型的时候,是继承的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,返回数据的值,不返回字段名,可指定要返回的字段

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

    讨论群:249728408
  • 相关阅读:
    市面上的系统.
    linux /dev 常见特殊设备介绍与应用[loop,null,zero,full,random]
    Linux command 系统快捷键
    Qtcreator中常用快捷键总结
    开始新的博客征途
    css选择器顺序的小技巧
    推荐20个很有帮助的web前端开发教程
    炙手可热的前端资源大集合
    一款纯css实现的垂直时间线效果
    15款极具创造性的艺术创意
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/15202038.html
Copyright © 2011-2022 走看看