在Django中,如果需要对数据库中的数据进行操作,则需要使用到django.db.models.Model中的objects,它是Manager(django.db.models.Manager)类的实例,被称为查询管理器,是数据库查询的入口。每个Django Model都至少有一个Manager实例。以下就是objects中的常用方法。

  • 添加
  • .create()
  • 传入的参数为需要增加的数据,一般使用关键字参数,变量名为Model中的字段名。如:
Department.objects.create(title="销售部")
  • 全部查询
  • all()
  • 查询全部数据。获取的数据是一个 QuerySet类型,与列表类似,支持通过循环迭代的方式获取数据,内部的数据每一个都是对象,可以理解为数据表的每一行数据,可以通过对象.字段名的方式获取指定数据。
  • 查询指定列
  • values()
  • 上面的all方法回去的数据类型是QuesrySet类型,是一种类似列表的数据类型,需要使用循环迭代的方式获取,而这个方法可以直接获取到指定数据,是一个字典类型的
  • 条件查询
  • 传入参数为需要查找的条件,一般为id,获取到的数据与全部查询一样,如果没有则返回一个空列表
  • exclude()
  • 与filter()类似,但是它是返回不符合条件的
  • get()
  • 获取指定符合条件的元素,但是只能查找一个,如果找不到或者有一个以上的符合条件的元素,都会产生exception
  • iexact()
  • 不区分大小写的条件查询
  • 排序
  • order_by()
  • 针对某一个字段进行排序,在字段名前面加+号表示升序,加-号表示降序
  • 获取第一个元素
  • first()
  • 返回queryset中匹配到的第一个对象,如果没有匹配到对象则为None,如果queryset没有定义排序,则按主键自动排序。
  • 获取最后一个元素
  • last()
  • 与first()类似,但是它是返回最后一个元素
  • 删除
  • delete()
  • 一般需要和条件查询共同使用。
  • 修改
  • 传入数据为需要修改的数据
  • 计算数据项的聚合函数
  • aggregate()
  • 聚合是指对QuerySet整体(可以理解为Model对象的集合)生成一个统计值
  • Django提供了一系列的聚合函数,其中Avg(平均值)、Count(计数)、Max(最大值)、Min(最小值)、Sum(加和)最为常用。
  • 如:aggregate(Avg(‘字段'))
  • 则是计算该字段的平均值
  • 检查是否存在某指令条件的记录
  • exists()
  • 通常附加在filter()后面
  • 如果存在则返回True,否则返回False