剔除查询某个字段_Django如何只筛选查询集的有用字段,以提高查询效率?

如果我们在实现某个功能的时候只需要获取其中的某一个字段或者某几个字段,那么我们使用Model.objects.all()的查询方法就非常的不妥,虽然可以实现想要的效果,但这个查询效率就不如我们只筛选查询需要的字段的效率高,俗话说高手过招,只在刹那间,开发也一样,性能、效率是我们必须要考虑的东西。

28b3968544e81ef868e0c3f57d83f080.png

关注我,轻轻松松学django

Django提供了两种筛选查询集字段的方法

  • queryset上的values和values_list方法。
  • only_method

假如我们想获取first_name和last_name字段以B开始的用户,那么我们只查询这两个字段即可,如下:

1、使用values方法

>>> queryset = User.objects.filter(    first_name__startswith='B').values('first_name', 'last_name')>>> queryset

2、使用only方法

>>> queryset = User.objects.filter(    first_name__startswith='R').only("first_name", "last_name")>>> 

对比这两种方法我们可以看出only方法只比values方法多获取了id,他们俩的区别也就是一个不获取id另一个获取。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值