F对象和Q对象

F对象和Q对象

F对象

一个F对象代表数据库中某条记录的字段的信息

作用:

通常是对数据库中的字段值在不获取的情况下进行操作

用于类属性(字段)之间的比较

语法

复制代码
from django.db.models import F
F('列名')

解决一种极端事件的产生,比如用户对一条微博的点赞,假如他们同时同时点赞,点赞数的可能只增加一个,但是用F对象就会使用MySQL中的一种锁使更新语句一次只能一个用户运行

复制代码
old - >update topic set like = 1 where id = xxxx
F - > update topic set like = like + 1 where id = xxxx

Q对象

当在获取查询结果集 使用复杂的逻辑或、逻辑非~等操作时可以借助于 Q对象进行操作

如: 想找出定价低于20元 或 清华大学出版社的全部书,可以写成

复制代码
Book.objects.filter(Q(price__lt=20) | Q(pub="清华大学出版社"))

Q对象在 数据包 django.db.models 中。需要先导入再使用

作用:在条件中用来实现除 and(&)以外的 or()或 not(~)操作

运算符:

& 与操作

| 或操作

~ 非操作

语法:

复制代码
from django.db.models import Q
Q(条件1)|Q(条件2) # 条件1成立或条件2成立
Q(条件1)&Q(条件2) # 条件1和条件2同时成立
Q(条件1)&~Q(条件2) # 条件1成立且条件2不成立
相关推荐
程序员JerrySUN13 分钟前
GPU 基础矩阵精规组织教程:从基础作用到实战应用
数据库·系统架构·gpu算力
不辉放弃15 分钟前
Spark SQL 的 SQL 模式和 DSL模式
数据库·pyspark·大数据开发
飞翔的佩奇4 小时前
基于SpringBoot+MyBatis+MySQL+VUE实现的房屋交易平台管理系统(附源码+数据库+毕业论文+部署教程+配套软件)
数据库·spring boot·mysql·vue·毕业设计·mybatis·房屋交易平台
wb1899 小时前
服务器的Mysql 集群技术
linux·运维·服务器·数据库·笔记·mysql·云计算
zl0_00_09 小时前
web刷题2
数据库
SelectDB11 小时前
森马服饰从 Elasticsearch 到阿里云 SelectDB 的架构演进之路
大数据·数据库·数据分析
寒士obj11 小时前
MySQL偏门但基础的面试题集锦
数据库·mysql
唐叔在学习11 小时前
9类主流数据库 - 帮你更好地进行数据库选型!
数据库·redis·mysql·mongodb·nosql·大数据存储
失因12 小时前
Linux 权限管理与 ACL 访问控制
linux·运维·服务器·数据库·centos
cookqq13 小时前
mongodb源代码分析创建db流程分析
数据库·sql·mongodb·nosql