68 聚合和分组, F和Q查询, cookie, session

主要内容:

1  聚合和分组:

  a : 先导入聚合函数: from django.db.models import  Max, Min, Avg, Count, Sum

  b : 可以为聚合函数设置名字:  max = Max(‘price‘)

  c : 聚合用到了aggregate,  是queryset的一个终止语句,  获取的结果是一个字典的形式.

1     from django.db.models import Avg, Sum, Max, Min, Count
2     ret = models.Book.objects.all().aggregate(Avg(‘price‘))
3     # print(ret)
4     # aggregate(), 是queryset的一个终止语句, 返回值是一个字典
5     ret1 = models.Book.objects.all().aggregate(Max(‘price‘))
6     # print(ret1)                      #{‘price__max‘: Decimal(‘49.00‘)}获取的是一个字典形式
7     # 也可以为聚合值指定一个名称
8     ret2 = models.Book.objects.all().aggregate(max_price=Max(‘price‘))

aggregate

      

原文地址:https://www.cnblogs.com/gyh412724/p/9780930.html

时间: 2024-10-03 19:52:23

68 聚合和分组, F和Q查询, cookie, session的相关文章

django之 F与Q查询

F与Q查询 F查询 why??????? 我们构造的过滤器都只是将字段值与某个我们自己设定的常量做比较.如果我们要对两个字段的值做比较,那该怎么做呢? answer:Django 提供 F() 来做这样的比较.F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值. show time (我们来演示以下啪)??? 1 from django.db import models 2 3 # Create your models here. 4 5 class Produ

Django ORM 之F、Q查询与事务

内容目录 一.F.Q查询 二.事务 三.only与defer 一.F.Q查询 """ Product表中的数据: 1 橡皮 2 2000 3000 2 铅笔 3 12 200 3 华为保时捷 18000 30 23 4 索尼A6000 3680 24 12 """ # 查询卖出数大于50的商品 # res = models.Product.objects.filter(maichu__gt=50) # <QuerySet [<Prod

Django学习【第7篇】:Django之ORM跨表操作(聚合查询,分组查询,F和Q查询等)

django之跨表查询及添加记录 一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many). 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMany(&qu

Django之ORM跨表操作(聚合查询,分组查询,F和Q查询等)

一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many). 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMany("要绑定关系的表名"

聚合与分组查询,F与Q查询

from django.db.models import Q 查询书籍名称是python入门或者价是555.55的书 book_queryset = models.Book.objects.filter(Q('title'='python入门')|Q('price'=555.55)) print(book_queryset) Q查询进阶用法 用Q产生对象 然后再使用 q = Q() q.connector('or') 添加查询条件 title__icontains为查询条件,同其他查询方式的写法

F与Q查询

F查询: 之前构造的过滤器都是将字段值与某个我们设定的常亮做比较,如果我们要对两个字段的字段的值做比较久需要用到F查询:F查询可以用来比较同一个model事例中两个不同字段的值, 准备工作: 创建数据库,使用orm创建表,使用Navicat添加数据,也可以使用pycharm中的database功能连接mysql添加数据 from django.test import TestCase # Create your tests here. import os import sys if __name

ORM多表分组、F与Q查询

编辑本博客 一.分组查询 先连接表,再分组查询 需求:查询每一个出版社出版的名称以及书籍个数 SQL连接表: SELECT * FROM app_book INNER JOIN app_publish on app_book.publish_id = app_publish.nid ORM连接表: Book.objects.values("publish").values() SQL链表后分组: SELECT count(title),app_publish.name FROM app

orm聚合查询、分组查询、F查询和Q查询

1.聚合查询(Avg,Count,Max,Min,Sum) Avg为求平均数,Count为求个数,Max为求最大值,Min为求最小值,Sum为求和 以Avg举例 from django.db.models import Avg,Count,Max,Min,Sum ret=Book.objects.all().aggregate(Avg('price')) //其中price必须是以有的字段 2.分组查询 ? 要点: ? values在annotate前,表示group by,在annotate后

使用聚合函数及F/Q及分组查询

import os from django.core.wsgi import get_wsgi_application if __name__=='__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "b20190116.settings") application = get_wsgi_application() # 聚合查询(一堆聚合函数,使用之前先导入) from django.db.model