django|教你一招,Django中的f和q函数怎么用?

django|教你一招,Django中的f和q函数怎么用?

文章图片

django|教你一招,Django中的f和q函数怎么用?

今天讲两个特殊的函数Django中的f和q函数 , 为了便于大家理解 , 我们还是一边通过实例 , 一边讲解他们的具体用法 。

F()作用介绍:【django|教你一招,Django中的f和q函数怎么用?】操作数据表中的某列值 , F()允许Django在未实际链接数据的情况下具有对数据库字段的值的引用 , 不用获取对象放在内存中再对字段进行操作 , 直接执行原生产sql语句操作 。
用法:
第一步 , 导入:from django.db.models import F
第二步 , F('列名')
示例1:将所有图书的价格涨价15元 。
通常的做法是这样的:
1)查询所有的图书:
books=Book.objects.all()
2)将图书的价格取出并修改:
forbook in books:
book.price=book.price+15
book.save
f函数的用法:
1)查询所有的图书:
books=Book.objects.all()
2)直接更新:
books.update(book.price=F('price')+15)

Q方法:
作用:对对象进行复杂查询 , 并支持&(and)|(or) , ~(not)操作符 。
主要用法:
第一步导入:from django.db.models import Q
第二步 , 类名.object.filter(Q(列名=值)操作符Q(列名=值))
示例2:
我们想要查询标题是红楼梦或者价格大于5的数据信息
Book.objects.filter(Q(title=‘红楼梦’)|Q(price__gt=5))