溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

django怎么查詢表數(shù)據(jù)是否存在

發(fā)布時間:2020-11-24 14:28:24 來源:億速云 閱讀:285 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)django怎么查詢表數(shù)據(jù)是否存在的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

一.查詢函數(shù)

通過模型類.objects屬性可以調(diào)用如下函數(shù),實現(xiàn)對模型類對應(yīng)的數(shù)據(jù)表的查詢。 (這里objects是django為我們實現(xiàn)的一個模型管理類的對象)

(1)get

返回滿足條件的一條且只有一條數(shù)據(jù)。返回值是一個模型類的對象。

參數(shù)中寫查詢條件。

1)如果查到多條數(shù)據(jù),則拋異常MultipleObjectsReturned。

2)查詢不到數(shù)據(jù),則拋異常:DoesNotExist

(2)all

返回模型類對應(yīng)的表中所有的數(shù)據(jù)。返回的是一個Queryset集合。

(3)filter

返回滿足條件的數(shù)據(jù),返回值是一個Queryset集合。

(4)exclude

返回不滿足條件的數(shù)據(jù),返回值是一個Queryset集合。

(5)order_by

對查詢的結(jié)果進(jìn)行排序,返回值是一個Queryset集合。

查詢條件格式

條件格式:

模型類屬性名__條件名=值

a)判等

條件名:exact。

可以省略。

b)模糊查詢

contains 包含

startwith 開頭 endwith 結(jié)尾

c)空查詢

isnull

d) 范圍查詢

in

e)比較查詢

lt 小于 gt 大于 gte大于等于 lte小于等于

f)日期查詢

year 年份

二.F對象

用于類屬性之間的比較。使用之前需要先導(dǎo)入:

   from django.db.models import F

二.Q對象

用于查詢時條件之間的邏輯關(guān)系。not and or,可以對Q對象進(jìn)行~&|操作。 使用前應(yīng)該先導(dǎo)入:

from django.db.models import Q

三.聚合函數(shù)

對查詢結(jié)果進(jìn)行聚合操作。 sum count avg max min

(1)aggregate

調(diào)用這個函數(shù)來使用聚合。返回值是一個字典。

先要導(dǎo)入聚合類:

from django.db.models import Sum,Count,Max,Min,Avg

(2)count函數(shù) 返回值是一個數(shù)字.

他們是對查詢結(jié)果進(jìn)行操作。

例如:

查詢結(jié)果.aggregate(Count(要統(tǒng)計的字段屬性))

關(guān)聯(lián)查詢

通過多類的條件查詢一類的數(shù)據(jù):

一類名.objects.filter(多類名小寫__多類屬性名__條件名)

通過一類的條件查詢多類的數(shù)據(jù):

多類名.objects.filter(關(guān)聯(lián)屬性__一類屬性名__條件名)

queryset查詢集

查詢集特性:

1)惰性查詢:只有在實際使用查詢集中的數(shù)據(jù)的時候才會發(fā)生對數(shù)據(jù)庫的真正查詢。

2)緩存:當(dāng)使用的是同一個查詢集時,第一次使用的時候會發(fā)生實際數(shù)據(jù)庫的查詢,然后把結(jié)果緩存起來,之后再使用這個查詢集時,使用的是緩存中的。

可以用角標(biāo)或者切片的方式來限制查詢值。

感謝各位的閱讀!關(guān)于django怎么查詢表數(shù)據(jù)是否存在就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI