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的级联删除方式