zoukankan      html  css  js  c++  java
  • 【转】Django之Model层的F对象,Q对象以及聚合函数

    转自:https://blog.csdn.net/wsy_666/article/details/86692050


    一.F对象:

    作用:用于处理类属性(即model的某个列数据),类属性之间的比较。
    使用之前需要先导入:
    from django.db.models import F
    例1:查询图书阅读量大于评论量图书信息。

    BookInfo.objects.filter(bread__gt=F('bcomment'))

    **例2:**查询图书 阅读量大于2倍评论 量图书信息。

    BookInfo.objects.filter(bread__gt=F('bcomment')*2)

    二.Q对象:
    作用:用于查询时条件之间的逻辑关系。not and or,可以对Q对象进行& | ~操作。
    使用之前需要先导入:
    from django.db.models import Q
    例1: 查询id大于3且阅读量大于30的图书的信息。

    写法1:BookInfo.objects.filter(id__gt=3,bread__gt=30)
    写法2:BookInfo.objects.filter(Q(id__gt=3)&Q(bread__gt=30))


    例2:查询id大于3或者阅读量大于30的图书的信息。

    BookInfo.objects.filter(Q(id__gt=3)|Q(bread__gt=30))

    例3:查询id不等于3图书的信息。

    BookInfo.objects.filter(~Q(id=3))


    三.聚合函数:
    作用:对查询结果进行聚合操作。
    sum count avg max min
    1. aggregate:
    调用这个函数来使用聚合。 返回值是一个字典

    使用前需先导入聚合类:
    from django.db.models import Sum,Count,Max,Min,Avg

    例1:查询所有图书的数目。

    BookInfo.objects.all().aggregate(Count('id'))

    例2:查询所有图书阅读量的总和。

    BookInfo.objects.all().aggregate(Sum(‘bread’))

    2.count函数: 返回值是一个数字
    作用:统计满足条件数据的数目。
    **例1:**统计所有图书的数目。

    BookInfo.objects.count()

    **例2:**统计id大于3的所有图书的数目。

    BookInfo.objects.filter(id__gt=3).count()

    总结:
    使用F对象导入:from django.db.models import Q
    使用Q对象导入:from django.db.models import F
    使用聚合函数对导入聚合类:from django.db.models import Sum,Count,Max,Min,Avg 等等

  • 相关阅读:
    ArcObject获取ArcMap默认地理数据库的路径
    标准IO
    进程关系
    进程环境
    C语言基础知识位运算
    Bash 快捷键
    信号
    UNIX系统文件
    进程
    unix 文件属性
  • 原文地址:https://www.cnblogs.com/yoyo008/p/11477094.html
Copyright © 2011-2022 走看看