17.F对象与Q对象

F对象与Q对象也是ORM中的内容

目录

1  F对象

1.1  操作列值

1.2  并发计数

1.3  比较列值

2  Q对象

2.1  逻辑或 |

2.2  逻辑非 ~

2.3  逻辑与 &


1  F对象

F对象是 指定范围内 一个字段(列)的全部内容对象,语法是这样的

1.1  操作列值

上面我们没有指定范围,下面我们指定一个范围,比如说我们现在要选表中的所有retail_price并让其都加10元

我们发现每一行都加了10元

如果不使用F对象,那么就应该这样写

1.2  并发计数

如果不使用F对象,那么就应该这样写

 使用更新的方法不如使用F对象,如果在实际工作中(并发计数),一定要使用F对象

场景: 例如1000个人同时点赞某个评论,第一种方式造成的最终结果可能只加了1,因为他们的初始环境是一样的,最后产生的数据是一样的。 使用F,相当于操作表,会有表锁,1000个人点赞,会避免脏数据,会+1000,相当于有事务控制。引用文章 10. django模型层,ORM操作详解,查询操作,更新操作,删除,F对象,Q对象,聚合查询,原生数据库操作_数哥的博客-CSDN博客

1.3  比较列值

我们现在想查询retail_price大于price的书

那么我们就可以这样写

发现一共有四本retail_price大于price的书

2  Q对象

Q对象使用 django.db.models import Q 进行导入,Q()括号中加的是查询条件,用于 逻辑与 ,逻辑或 和 逻辑非 的时候

2.1  逻辑或 |

我们现在想查询 price>=90 或 清华大学出版社的书

发现一共有四本书

2.2  逻辑非 ~

我们现在想查询不是 清华大学出版社 的书

2.3  逻辑与 &

我们现在想查询 不是清华大学出版社的书 且(逻辑与) price<90 的书

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值