Django 查询基本使用

2020/11/29 Django

# 介绍

  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')

# 多条件查询

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']
最近更新: 7 个月前