1.F对象

一个F对象代表数据库中某条记录的字段的信息。
作用:
通常是对数据库中的字段的值在不获取的情况下进行操作
用于类属性(字段)之间的比较。
语法:

From django.db.models import F
F(‘列名’)

例子:
所有Book数据表中的price涨价1元或降价一元。

Book.objects.all().update(price=F(‘price’)+1)
Book.objects.all().update(price=F(‘price’)-1)

F对象能够很好的解决并发情况下对数据加锁的问题。
例如对于账户余额的修改问题。

单线操作的情况下,

User = User.objects.get(id=1)
User.balance = User.balance + 100
User.save()

但是如果用户id=1在多个银行同时存款时,会导致在get时他们的数据在分布式环境中是相同的,这就导致我们需要把这个余额变化的代码看成是一个整体。就需要F对象的帮助。也就是

User = User.objects.get(id=1)
User.balance = F(‘Balance’) + 100
User.save()

通过F对象的帮助,我们能够较好的解决并发情况下的冲突问题。

或者,利用F对象,可以查找在Book表中,price大于id的情况。

2.Q对象

由于filter方法只能实现and的逻辑运算
当在获取查询结果集使用逻辑或|或者是逻辑非~等操作时,可以使用Q对象进行操作。

例如,找出所有定价高于20元或id大于3的书,可以写成:
Book.objects.filter(Q(price__gt=20) | Q(id__gt=3))

除了或操作符 | ,还有& 与操作符、~非操作符。

Django学习 Day9相关推荐

  1. Django介绍和虚拟环境(django特点、MVC、MVT、Django学习资料)

    MVT流程: 创建Django项目和应用 django-admin startproject name python manager.py startapp name 视图和ULR 视图的请求和响应 ...

  2. django学习之路(五)站点管理admin - django - 一直很安静 - Powered by Discuz!

    django学习之路(五)站点管理admin - django - 一直很安静 - Powered by Discuz!: "" (Via.) 转载于:https://www.cn ...

  3. django 学习笔记

    django 学习笔记 启动虚拟机: workon bj18_py3 创建一个项目: django-admin.py startproject mysite 启动开发用服务器:从外层项目 mysite ...

  4. 分享:Django学习笔记(4)---ManyToMany 添加、删除关联、查询

    Django学习笔记(4)---ManyToMany 添加.删除关联.查询 http://my.oschina.net/u/572994/blog/105280

  5. Django学习总结①

    Django学习总结① Django基础环境配置好以后,打开pycharm,创建Django项目 视图views 中需要导入 django.http ---> HttpResponsemodel ...

  6. Django学习目录

    Django学习目录 Django框架简介 Django基础 >>点我 ORM介绍 Django中ORM介绍 >>点我 ORM表操作 Django中ORM表相关操作 >& ...

  7. Python Web框架Django学习(二)

    python web框架Django学习(二) 目录:  三.Django创建APP  四.创建登录页面,实现用户交互,后台管理用户(非数据库方式) ========================= ...

  8. Django学习之十: staticfile 静态文件

    目录 Django学习之十: staticfile 静态文件 理解阐述 静态文件 Django对静态文件的处理 其它方面 总结 Django学习之十: staticfile 静态文件 理解阐述 静态文 ...

  9. django学习笔记03

    原创博客地址:django学习笔记03 第一章,模型层 查询集API 一.QuerySet何时被提交 迭代 QuerySet是可迭代的,在首次迭代查询集时执行实际的数据库查询 切片:如果使用切片的&q ...

最新文章

  1. 破纪录了!用 Python 实现自动扫雷!
  2. 计算机丢失ac1st.dll怎么找回,CAD提示ac1st16.dll丢失修复步骤
  3. 使用 SCons 代替 Makefile 快速构建应用程序
  4. Quick Audience组织和工作空间功能解读
  5. css怎么使元素绝对定位有过度效果_小猿圈web前端讲解div+css绝对定位和相对定位...
  6. 数据库分库分表的几种方式
  7. 怎么修改腾讯视频账户和密码
  8. HTML DOM addEventListener() 方法
  9. javamail发送邮件(转)
  10. NOIp2017 题解
  11. DSP28335加密及解密
  12. 微软成为雅虎财经2021年年度最佳公司
  13. 头条python后台一面凉经
  14. 什么水果有利于饭后消化?
  15. Mac新手入门功能操作指南!!
  16. 很有哲理的句子,每天都值得看一遍
  17. Proxy—Linux服务器代理
  18. TSQL与PL/SQL的区别
  19. 2021 回头看看这一年
  20. 信号的调制与解调matlab仿真,基于MATLAB对信号调制与解调的仿真

热门文章

  1. Java中的对象和类
  2. JS获取父节点、子节点、兄弟节点
  3. 机房搬迁解决方案有哪些?
  4. 装饰器模式代码举例(java语言版)
  5. 编辑距离(Edit Distance)
  6. 【leetcode】287 寻找重复数(查找)
  7. COE文件与MIF文件使用方法
  8. 分享 14 个你必须知道的 JS 函数
  9. LeetCode.数组中的第k个最大的元素(基于快速排序的选择排序算法)
  10. 【win7如何正确设置麦克风】