Django 查询入门

这篇博客介绍了Django ORM中的QuerySet对象,它具备列表特性并提供额外功能,用于存储模型实例。通过filter()和get()方法进行查询,分别返回QuerySet和单个模型对象。文章详细阐述了如何使用serialize()和values()处理查询结果,以及如何进行多条件查询、逻辑运算、字段增减、获取最值和排序。同时,文中提到了Meta类在排序中的应用。
摘要由CSDN通过智能技术生成

介绍

  1. 查询结果为 QuerySet 类似于列表但是比列表还多一些其他功能,这是orm封装出来的新的数据类型,
  2. 里面存放的是 model 类的实例化实例化对象,每个对象表示一条记录,对象中的对应数据有着该行记录的字段数据
  3. filter() 过滤查询 where条件,结果也是 QuerySet 类型数据,每一项也是模型类对象
  4. this_user = User.objects.filter(username=??)
  5. get() 过滤查询,但是结果只能有一条,结果不是QuerySet 类型数据,只是一个模型类对象

查询结果处理

方式一

from django.core import serializers
import json

users = serializers.serialize("json", User.objects.all())
response['data'] = json.loads(users)

方式二

response['data'] = list(User.objects.all().values())
# values()中还可以指定序列化特定字段 比如values('id', 'name')

多条件查询

queryDict = dict()
queryDict[key] = value
Data.objects.filter(**queryDict)

与或非

from django.db.models import Q

字段增减

from django.db.models import F
Data.objects.filter(**queryDict).update(number=F('number') + 1)

最值

from django.db.models import Max

排序

使用order_by进行排序

dataList = Data.objects.filter(**queryDict).order_by('id')
dataList = Data.objects.filter(**queryDict).order_by('-id') # 倒序

使用Meta类字段来排序

# 在数据库创建类里面写入
# 每次查询数据库都会默认使用该字段来排序,除非你显示的使用order_by语句来排序
class Meta:
  ordering = ['id']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值