# 介绍
- 查询结果为 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())
# values()中还可以指定序列化特定字段 比如values('id', 'name')
# 多条件查询
response['data'] = list(User.objects.all().values())
# values()中还可以指定序列化特定字段 比如values('id', 'name')
# 与或非
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']