一、F查询

 rom django.db.models import F
from app01.models import Book
Book.objects.update(price=F("price")+20) # 对于book表中每本书的价格都在原价格的基础上增加20元

就这样一条简单的语句就完成了对表中所有商品价格的更新,是不是很方便!如果没有F查询,你首先要获取原价格,再做一个算术运算,然后更新字段。F查询专门对对象中某列值的操作,不可使用__双下划线!

二、Q查询

Q查询可以组合使用 “&”, “|” 操作符,当一个操作符是用于两个Q的对象,它产生一个新的Q对象,Q对象可以用 “~” 操作符放在前面表示否定,也可允许否定与不否定形式的组合。Q对象可以与关键字参数查询一起使用,不过一定要把Q对象放在关键字参数查询的前面。

 from django.db.models import Q

 print(Book.objects.filter(Q(id=3))[0])  # 因为获取的结果是一个QuerySet,所以使用下标的方式获取结果
print(Book.objects.filter(Q(id=3)|Q(title="Go"))[0]) # 查询id=3或者标题是“Go”的书
print(Book.objects.filter(Q(price__gte=70)&Q(title__startswith="J"))) # 查询价格大于等于70并且标题是“J”开头的书
print(Book.objects.filter(Q(title__startswith="J") & ~Q(id=3))) # 查询标题是“J”开头并且id不是3的书
print(Book.objects.filter(Q(price=70)|Q(title="Python"), publication_date="2017-09-26")) # Q对象可以与关键字参数查询一起使用,必须把普通关键字查询放到Q对象查询的后面
 from django.db.models import Q

 con = Q()
q1 = Q()
q1.connector = "AND"
q1.children.append(("email", "123@qq.com"))
q1.children.append(("password", "abc123")) q2 = Q()
q2.connector = "AND"
q2.children.append(("username", "abc"))
q2.children.append(("password", "xyz123")) con.add(q1, "OR")
con.add(q2, "OR") obj = models.UserInfo.objects.filter(con).first() # 查询email=123@qq.com和password=abc123 或者 username=abc和password=xyz123的用户信息

最新文章

  1. Python-面向对象
  2. Java---类加载机制,构造方法,静态变量,(静态)代码块,父类,变量加载顺序
  3. ajax的探究与使用
  4. MVC数据传递和多表单
  5. Fedora 21 64位系统安装WPS教程
  6. windows下git bash显示中文
  7. Java获取当前进程的所有线程
  8. nodejs Q.js promise
  9. linux下对符合条件的文件大小做汇总统计的简单命令
  10. JAVA CAS单点登录(SSO) 教程
  11. 给那些因为Firebug而舍不得FireFox的朋友
  12. Spring-----多环境中加载资源配置文件
  13. powerpc e500系列,linux初始化的tlb汇编,添加人肉代码注释
  14. HTTP协议--简析
  15. 基本的SQL语句
  16. LeetCode OJ 85. Maximal Rectangle
  17. 每个黑客黑客的目标是让目标系统做你不想做的事情。 一个主要的例子是显示敏感文件,如/ etc / passwd和/ etc / shadow(存储用户的用户名和加密密码)。一旦这些文件在他或她的手中,就可以使用“字典“攻击的密码。 或者,他们可以使您的系统FTP受感染的文件,并运行它,这可能是坏或坏。为了做到这一点,他们需要得到一个“可信”的程序来执行他们指定的命令。通常,这是通过“缓冲区
  18. ListView遍历每个Item出现NullPointerException的异常处理(转)
  19. MyBatis-plus 代码生成器
  20. Android ART、Dalvik在multidex上的差异、关联

热门文章

  1. spring自带工具类
  2. UVa 725 Division (枚举)
  3. OI多项式 简单学习笔记
  4. python build-in function
  5. iframe嵌套页面 跨域
  6. 初识linux命令
  7. js 扫码枪的输入
  8. 深入理解php的输出缓冲区(output buffer)
  9. ffplay播放PCM裸流
  10. [NN] Guided Backpropgation 可视化