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 等等

  • 相关阅读:
    使用slf4j取代Apache Commons Logging
    IntelliJ远程调试教程
    java日志,(commons-loging 、log4j 、slf4j 、LogBack介绍)
    oracle 时间函数
    在Windows操作系统中,如何终止占有的8080端口的tomcat进程
    解决dwr报错【 Error: java.lang.SecurityException: No class by name: service】
    eclipse下使用tomcat启动maven项目
    Eclipse Java注释模板设置详解
    weblogic启动时日志重定向(nohup.out)
    信息化的基本概念
  • 原文地址:https://www.cnblogs.com/yoyo008/p/11477094.html
Copyright © 2011-2022 走看看