創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)建站是專業(yè)的江川網(wǎng)站建設(shè)公司,江川接單;提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行江川網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!這篇文章給大家分享的是有關(guān)django怎么查詢表數(shù)據(jù)是否存在的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
一.查詢函數(shù)
通過模型類.objects屬性可以調(diào)用如下函數(shù),實(shí)現(xiàn)對(duì)模型類對(duì)應(yīng)的數(shù)據(jù)表的查詢。 (這里objects是django為我們實(shí)現(xiàn)的一個(gè)模型管理類的對(duì)象)
(1)get
返回滿足條件的一條且只有一條數(shù)據(jù)。返回值是一個(gè)模型類的對(duì)象。
參數(shù)中寫查詢條件。
1)如果查到多條數(shù)據(jù),則拋異常MultipleObjectsReturned。
2)查詢不到數(shù)據(jù),則拋異常:DoesNotExist
(2)all
返回模型類對(duì)應(yīng)的表中所有的數(shù)據(jù)。返回的是一個(gè)Queryset集合。
(3)filter
返回滿足條件的數(shù)據(jù),返回值是一個(gè)Queryset集合。
(4)exclude
返回不滿足條件的數(shù)據(jù),返回值是一個(gè)Queryset集合。
(5)order_by
對(duì)查詢的結(jié)果進(jìn)行排序,返回值是一個(gè)Queryset集合。
查詢條件格式
條件格式:
模型類屬性名__條件名=值
a)判等
條件名:exact。
可以省略。
b)模糊查詢
contains 包含
startwith 開頭 endwith 結(jié)尾
c)空查詢
isnull
d) 范圍查詢
in
e)比較查詢
lt 小于 gt 大于 gte大于等于 lte小于等于
f)日期查詢
year 年份
二.F對(duì)象
用于類屬性之間的比較。使用之前需要先導(dǎo)入:
from django.db.models import F
二.Q對(duì)象
用于查詢時(shí)條件之間的邏輯關(guān)系。not and or,可以對(duì)Q對(duì)象進(jìn)行~&|操作。 使用前應(yīng)該先導(dǎo)入:
from django.db.models import Q
三.聚合函數(shù)
對(duì)查詢結(jié)果進(jìn)行聚合操作。 sum count avg max min
(1)aggregate
調(diào)用這個(gè)函數(shù)來使用聚合。返回值是一個(gè)字典。
先要導(dǎo)入聚合類:
from django.db.models import Sum,Count,Max,Min,Avg
(2)count函數(shù) 返回值是一個(gè)數(shù)字.
他們是對(duì)查詢結(jié)果進(jìn)行操作。
例如:
查詢結(jié)果.aggregate(Count(要統(tǒng)計(jì)的字段屬性))
關(guān)聯(lián)查詢
通過多類的條件查詢一類的數(shù)據(jù):
一類名.objects.filter(多類名小寫__多類屬性名__條件名)
通過一類的條件查詢多類的數(shù)據(jù):
多類名.objects.filter(關(guān)聯(lián)屬性__一類屬性名__條件名)
queryset查詢集
查詢集特性:
1)惰性查詢:只有在實(shí)際使用查詢集中的數(shù)據(jù)的時(shí)候才會(huì)發(fā)生對(duì)數(shù)據(jù)庫的真正查詢。
2)緩存:當(dāng)使用的是同一個(gè)查詢集時(shí),第一次使用的時(shí)候會(huì)發(fā)生實(shí)際數(shù)據(jù)庫的查詢,然后把結(jié)果緩存起來,之后再使用這個(gè)查詢集時(shí),使用的是緩存中的。
可以用角標(biāo)或者切片的方式來限制查詢值。
感謝各位的閱讀!關(guān)于django怎么查詢表數(shù)據(jù)是否存在就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!