Django对数据库中的数据进行操作

     阅读:38

在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类型,是一种类似列表的数据类型,需要使用循环迭代的方式获取,而这个方法可以直接获取到指定数据,是一个字典类型的
  • 条件查询
    •  filter()
      • 传入参数为需要查找的条件,一般为id,获取到的数据与全部查询一样,如果没有则返回一个空列表
    • exclude()
      • 与filter()类似,但是它是返回不符合条件的
    • get()
      • 获取指定符合条件的元素,但是只能查找一个,如果找不到或者有一个以上的符合条件的元素,都会产生exception
    • iexact()

      • 不区分大小写的条件查询

  • 排序
    • order_by()

      • 针对某一个字段进行排序,在字段名前面加+号表示升序,加-号表示降序

  • 获取第一个元素
    • first()
      • 返回queryset中匹配到的第一个对象,如果没有匹配到对象则为None,如果queryset没有定义排序,则按主键自动排序。
  • 获取最后一个元素
    • last()

      • 与first()类似,但是它是返回最后一个元素

  • 删除
    • delete()
      • 一般需要和条件查询共同使用。
  • 修改
    •  update()
      • 传入数据为需要修改的数据
  • 计算数据项的聚合函数
    • aggregate()

    • 聚合是指对QuerySet整体(可以理解为Model对象的集合)生成一个统计值

    • Django提供了一系列的聚合函数,其中Avg(平均值)、Count(计数)、Max(最大值)、Min(最小值)、Sum(加和)最为常用。

    • 如:aggregate(Avg(‘字段'))

      • 则是计算该字段的平均值

  • 检查是否存在某指令条件的记录

    • exists()

      • 通常附加在filter()后面

      • 如果存在则返回True,否则返回False