介绍
- 查询结果为 QuerySet 类似于列表但是比列表还多一些其他功能,这是orm封装出来的新的数据类型,
- 里面存放的是 model 类的实例化实例化对象,每个对象表示一条记录,对象中的对应数据有着该行记录的字段数据
- filter() 过滤查询 where条件,结果也是 QuerySet 类型数据,每一项也是模型类对象
- this_user = User.objects.filter(username=??)
- 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())
多条件查询
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类字段来排序
class Meta:
ordering = ['id']