日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Django?ORM?F對(duì)象和Q對(duì)象查詢_python

作者:世界盡頭與你 ? 更新時(shí)間: 2022-11-24 編程語(yǔ)言

閱讀文本前請(qǐng)參考此文章的數(shù)據(jù)表結(jié)構(gòu)

Django提供了兩個(gè)非常有用的工具:F對(duì)象和Q對(duì)象,方便了在一些特殊場(chǎng)景下的查詢過(guò)程。

1.F對(duì)象查詢

F對(duì)象用于操作數(shù)據(jù)庫(kù)中某一列的值,它可以在沒(méi)有實(shí)際訪問(wèn)數(shù)據(jù)庫(kù)獲取數(shù)據(jù)值的情況下對(duì)字段的值進(jìn)行引用

使用F對(duì)象之前需要將它引入當(dāng)前的環(huán)境中:

from django.db.models import F

如果要查詢up小于等于down的Comment:

comment = Comment.objects.filter(up__lte=F('down'))

要查詢所有up值大于down值2倍的Comment對(duì)象,可以這樣實(shí)現(xiàn):

comment = Comment.objects.filter(up__gt=F('down') * 2)

使用F查詢讓表中的某個(gè)字段值+1:

comment = Comment.objects.get(id=1)
comment.up = F('up') + 1
comment.save()

2.Q對(duì)象查詢

使用Q對(duì)象之前需要將它引入當(dāng)前的環(huán)境中:

from django.db.models import Q

如果想要查詢up大于60或down大于60的所有Comment對(duì)象:

comment = Comment.objects.filter(Q(up__gt=60) | Q(down__gt=60))

Q對(duì)象也可以與關(guān)鍵字參數(shù)組合在一起使用,但是在這種情況下,Django規(guī)定,Q對(duì)象必須放在前面:

在這里插入圖片描述

多個(gè)Q對(duì)象可以使用“&”(與)、“|”(或)運(yùn)算符組合,產(chǎn)生一個(gè)新的Q對(duì)象。可以使用“”(非)運(yùn)算符取反,即實(shí)現(xiàn)NOT查詢??

原文鏈接:https://blog.csdn.net/Gherbirthday0916/article/details/127274199

欄目分類
最近更新