• 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
  • 相关阅读:
    在线古书式竖排工具
    智能实验室-全能优化(Guardio) 5.04.0.1040
    智能实验室-全能优化(Guardio) 5.03.0.1011
    在线专用链双向转换
    智能实验室-杀马(Defendio) 4.32.0.1020
    智能实验室-杀马(Defendio) 4.31.0.1010
    智能实验室-全能优化(Guardio) 4.999.0.981
    智能实验室-杀马(Defendio) 4.27.0.951
    智能实验室-全能优化(Guardio) 5.02.0.1000
    智能实验室-结构化存储浏览器(SSExplorer) 2.0.0.200
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/15202038.html
Copyright © 2020-2023  润新知