django QuerySet Api介绍-----返回QuerySets的

1、filter(**kwargs)
多个参数间是AND关系

2、exclude(**kwargs)
多个参数间是AND关系,查找NOT不匹配的记录

3、annotate(*args, **kwargs)
对QuerySets中每条记录增加批注,批注参数列表中每个表达式计算的结果。将每个结果对应批注到每条记录上。args使用缺省别名,kwargs使用关键字作为别名

4、order_by(*fields)
a、QuerySets通常按照Meta中的ordering选项排序,也可以通过使用order_by方法定制单个QuerySets的返回排序。‘-field’为降序,缺省为升序,‘?’为乱序(此种情况性能低) b
b、可以使用关联模型的某个字段“关联模型__field”排序
c、直接使用关联模型,则排序使用关联模型中Meta中的ordering排序,如果没有,则使用默认排序,即关联模型的primary key排序。
d、也可以按照query expressions排序,通过调用query expressions的asc、desc方法
e、 如果使用一对多的反向关系,或者多对多关系的关联对象排序,QuerySets中会多出重复查询记录(原因:order_by中每个field,都会出现在select的column中,但是不返回,因此从返回结果看产生了重复的查询结果),注意!!!!。使用distinc(),可以消除重复记录,但需要小写使用 f、无法定义排序是否大小写敏感,django会依照数据库对字符串排序的方式进行排序。通过调用Lower可以达到大小写一致的排序目的:Entry.objects.order_by(Lower(‘headline’).desc())
g、如果不希望进行任何排序包括缺省排序,无参调用order_by()
h、每次order_by()都会清空前一次order_by()的排序
i、会造成性能损耗
j、如果查询未定义排序,则以未知排序返回QuerySets
k、唯一确定一记录的项集合排序,则总是返回顺序的结果

5、reverse()
a、逆序查询结果,再次调用则恢复原始排序。
b、如果查询无排序(order_by调用或者缺省排序)ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值