学习笔记——Django项目中的F对象,Q对象,聚合函数,排序

2022-09-30

F对象:

  在shell中是用于两个有关联的属性之间的查询。

使用实例:

查询书籍表中阅读量大于评论量的记录

前提,进入pycharm,进入虚拟环境,进入shell环境。

首先,要使用F对象,那么就需要导入F对象

from django.db.models import F

后进行查询

BookInfo1.objects.filter(readcount__gt = F("commentcount"))

-------------------------------

Q对象

  同F对象类似,可用于“与”,“或”,“非”的查询

首先导入包含Q的模块,

from django.db.models import Q

(1)查询id>2而且阅读量大于100的图书

BookInfo1.objects.filter(Q(id__gt = 2)&Q(readcount__gt = 100))

(2)查询id>8或者阅读量大于50的图书

BookInfo1.objects.filter(Q(id__gt = 8)|Q(readcount__gt = 50))

(3)查询不包含编号为3的图书

BookInfo1.objects.filter(~Q(id__gt = 3))

------------------------

聚合函数

聚合函数的类型有5个,Sum,Max,Min,Avg,Count

实例:

首先,需要导入包含的聚合函数的模块,如果使用Sum,就导入Sum,例:

from django.db.models import Sum

查询书籍表中阅读量的总和

BookInfo1.objects.aggregate(Sum("readcount"))

  注:此处的聚合函数使用的是“aggregate”,而不是“aggredation”。是一个动词。

 ---------------------------------

排序

在Django项目中的表单中,排序默认是按照 升序 进行排序。如果想要进行降序的话,就在要排序的属性前面加上一个负号。

实例:

在书籍表中按照阅读量进行排序,默认为升序

BookInfo1.objects.all().order_by("readcount")

按照降序排列

BookInfo1.objects.all().order_by("-readcount")

 

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:学习笔记——Django项目中的F对象,Q对象,聚合函数,排序 - Python技术站

(0)
上一篇 2023年4月2日 下午4:50
下一篇 2023年4月2日

相关文章

  • python中组合数据的操作

    2022-09-26 组合数据类型:  列表     字典     集合     元组 拷贝:     deep(深拷贝)     shallow(浅拷贝)     区别:例如,文件中有一个指针指向另一块存储空间,如果是深拷贝则将指向的那一块文件内容也全部拷贝,如果是浅拷贝那么不需要将指针指向的内容进行拷贝,只拷贝第一层级的内容。指针指向的内容属于第二层级。…

    Python开发 2023年4月2日
    00
  • 装饰器的使用

    2022-09-17 装饰器的使用实例——获得计时函数所用时间: 1 import time 2 # 定义装饰器函数 3 def decorator(fun): 4 def inner(): 5 # 获得开始时间 6 start = time.time() 7 # 执行计时函数 8 fun() 9 # 执行计时函数之后所用的时间 10 end = time.…

    Python开发 2023年4月2日
    00
  • Django项目中表的查询的操作

    2022-09-29 shell操作:   我在使用中是pycharm与数据库建立连接的一个工具。 使用的环境:   在此处是用在了虚拟环境中。 使用场景:   一般是在创建的表中插入数据后,进行查看,可以代替在“视图”中——“创建一个函数用于请求指定表中的内容,在浏览器中返回”。 在插入表的过程中,有两个新得知的内容:   第一个是,插入语句中,“inse…

    Python开发 2023年4月2日
    00
  • 闭包第2天

    2022-09-10 闭包的使用实例 1 def config_name(name): 2 def inner(msg): 3 print(name + “:” + msg) 4 5 print(id(inner)) 6 return inner 7 8 A = config_name(“A”) 9 B = config_name(“B”) 10 A (“有…

    2023年4月2日
    00
  • 学习笔记——Django项目中的cookie

    2022-10-05 得到cookie信息的实例联系: 在子应用中的“views.py”文件: from django.http import HttpResponse def get_cookie(request): cookies = request.COOKIES username = cookies.get(‘username’) return Ht…

    Python开发 2023年4月2日
    00
  • 使用多个装饰器

    2022-09-18 多个装饰器使用的实例: 1 # 定义一个装饰器 2 def make_p(func): 3 print(“执行装饰器make_p”) 4 5 def inner(): 6 # 对已有函数增加新的功能 7 result = “<p>” + func() + “</p>” 8 # 和已有函数保持一致,如果已有函数有返…

    2023年4月2日
    00
  • 类装饰器

    2022-09-18  类装饰器的定义:   使用一个类作为一个装饰器,在类里面对已有函数添加其他功能。 类装饰器使用的一个实例: 1 class MyDecorator(object): 2 def __init__(self,func): 3 self.__func = func 4 5 def __call__(self, *args, **kwarg…

    2023年4月2日
    00
  • 学习笔记——Django项目中新增数据、修改数据

    2022-09-30 新增数据 方式一: 进入虚拟环境,进入shell工具环境中(“python manage.py shell”),插入数据。在插入数据之前,可以先将要插入的内容写在“views.py”中,,这样做的目的是先写在此处会有代码提示,较为方便。之后将内容放到shell工具中。 首先,先要导入某个表,使用的是ORM模式,因此导入的是一个子应用中的…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部