QuerySet中常用的方法

QuerySet常用方法

  • 使用 connection.queries 可以查看sql语句
  • filter 将满足条件的结果返回,返回值为QuerySet对象
  • exclude 将满足条件的结果过滤掉,返回值为QuerySet对象
  • annotate 给QuerySet中的每一个对象都添加一个查询表达式,(Q,F,聚合函数)的字段
  • order_by 安装某个字段进行排序,默认为从小到大排序,如果想要重大到小可以在字段前加“-”,需要注意order_by可以传递多个参数,会按照先后级别进行排序,而且order_by还可以用annotate新增的字段来排序,注意:order_by重复调用会只会保存最后一个。
  • values:提取需要哪些字段,默认会把全部都提取出来。返回的结果是QuerySet,但是其中包裹的不是模型,而是字典,如果想要提取关联数据,那么可以通过F表达式来完成。values也可以使用聚合函数
  • values_list 提取需要字段,返回QuerySet,其中包裹的元组,如果数据只有一条,则可以使用flat=True进行扁平化处理,直接返回结果
  • all 方法:返回全部数据(返回包裹对象的QuerySet)
  • select_related : 可以将关联的对象一起查询出来,只能用于外键连接的形式(一对多或者一对一的形式)
  • prefetch_related : 使用的时候传入反向引用的时候调用的名称默认为 filed_set,使用这个方式可以用来查询多对一或者多对多的方式,也可以用来查询一对一或者一对多的,但是不推荐。
  • defer : 过滤掉不需要的字段,返回值是一个包裹着模型的QuerySet
  • only : 提取某些字段,返回一个包裹模型的QuerySet
  • get : 直接返回对象,只能返回一条数据,如果返回数据超过一条就会报错,如果没有匹配到任何数据也会报错。
  • create : 用于增加一条数据,并且将数据保存在数据库中,相当于先创建数据,然后调用save方法
  • get_or_create : 如果给定的条件存在数据就查找返回,如果不存在就创建一个,然后在返回,返回结果是一个元组,元组中两个内容,第一个是模型对象,第二个是bool值,如果没有创建返回False,如果创建了返还True。
  • bulk_create :可以一次性创建多条数据。
  • count :获取满足条件的数据的个数
  • first,last 分别返回QuerySet中第一条和最后一条数据
  • exists : 判断数据是否存在,存在返回True,不存在返回False
  • distinct : 去重,默认按照全部字段判断。注意如果和order_by同时使用会失效
  • update :更新数据
  • delete : 删除数据,需要注意:字段中on_delete的级联删除方式

你可能感兴趣的:(Django)