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不成立
相关推荐
IvorySQL20 分钟前
济南站活动回顾|IvorySQL中的Oracle XML函数使用示例及技术实现原理
xml·数据库·sql·postgresql·oracle·开源
计算机编程-吉哥41 分钟前
计算机毕业设计 基于Python的智能文献管理系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
python·django·毕业设计·计算机毕业论文·计算机毕业设计选题·软件工程毕业设计论文·文献管理系统
Data 3171 小时前
Hive数仓操作(十)
大数据·数据库·数据仓库·hive·hadoop
ON.LIN1 小时前
Hadoop大数据入门——Hive-SQL语法大全
大数据·数据库·hive·hadoop·分布式·sql
Elastic 中国社区官方博客1 小时前
Elasticsearch 开放推理 API 增加了对 Google AI Studio 的支持
大数据·数据库·人工智能·elasticsearch·搜索引擎
董乐,快乐的乐!1 小时前
Study-Oracle-11-ORALCE19C-ADG集群搭建
数据库·oracle
赖勇浩2 小时前
因浏览器未发送Referer HTTP头导致Django项目CSRF验证失败的原因
http·https·django·csrf
青云交2 小时前
大数据新视界 --大数据大厂之 Kafka 性能优化的进阶之道:应对海量数据的高效传输
大数据·数据库·人工智能·性能优化·kafka·数据压缩·分区策略·磁盘 i/o
Sarapines Programmer2 小时前
【Sqlite】sqlite内部函数sqlite3_value_text特性
数据库·sqlite·数据转换·科学计数法
打码人的日常分享2 小时前
企业人力资源管理,人事档案管理,绩效考核,五险一金,招聘培训,薪酬管理一体化管理系统(源码)
java·数据库·python·需求分析·规格说明书