創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)德興,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108這篇文章主要介紹了django可以用什么數(shù)據(jù)庫(kù)查詢,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
數(shù)據(jù)查詢
要從數(shù)據(jù)庫(kù)檢索數(shù)據(jù),首先要獲取一個(gè)*查詢集***(QuerySet),查詢集表示從數(shù)據(jù)庫(kù)獲取的對(duì)象集合,它可以有零個(gè),一個(gè)或多個(gè)過(guò)濾器。返回查詢集的方法,稱為過(guò)濾器,過(guò)濾器根據(jù)給定的參數(shù)縮小查詢結(jié)果范圍,相當(dāng)于sql語(yǔ)句中where或limit。
在管理器上調(diào)用過(guò)濾器方法會(huì)返回查詢集,
查詢集經(jīng)過(guò)過(guò)濾器篩選后返回新的查詢集,因此可以寫(xiě)成鏈?zhǔn)竭^(guò)濾,
惰性執(zhí)行:創(chuàng)建查詢集不會(huì)帶來(lái)任何數(shù)據(jù)庫(kù)的訪問(wèn),直到調(diào)用數(shù)據(jù)時(shí),才會(huì)訪問(wèn)數(shù)據(jù)庫(kù),
以下對(duì)查詢集求值:迭代、切片、序列化、與if合用、repr()/print()/len()/list()/bool()。
返回查詢集
all()
# 獲取所有數(shù)據(jù),對(duì)應(yīng)SQL:select * from User User.objects.all()
filter(**kwargs) 返回QuerySet包含與給定查找參數(shù)匹配的新查詢集。
#等價(jià)sql:select * from User User.objects.filter() #等價(jià)sql:select * from User where uname = 'admin' User.objects.filter(uname='admin') #等級(jí)sql:select * from User where uid > 1 and type = 2 User.objects.filter(uid__gt=1,type=2) #鏈?zhǔn)秸{(diào)用,等價(jià)于User.objects.filter(uid__gt=1,type=2) User.objects.filter(uid__gt=1).filter(type=2)
exclude(**kwargs)
# 不匹配,對(duì)應(yīng)SQL:select * from User where name != 'admin' User.objects.exclude(name='admin')
order_by(*fields)
參數(shù)是字段名,可以有多個(gè)字段名,默認(rèn)是升序。
如果要按某個(gè)字段降序,在字段名前加’-’: "-uid"表示按uid降序排列
#按uid升序排列 等價(jià)于 order by uid User.objects().order_by('uid') #按uid降序排列 等價(jià)于 order by uid desc User.objects.order_by('-uid') #多列排序 等價(jià)于 order by password,uid desc User.objects.order_by('password','-uid')
返回單個(gè)值
下面這些方法后面不能再跟其他過(guò)濾方法,因?yàn)樗麄儾环祷夭樵兗?/p>
get() 只匹配一條數(shù)據(jù)
u = User.objects.get(pk=1) #正常 u = User.objects.get(uid__gt=20) #MultipleObjectsReturned 匹配到了多條數(shù)據(jù) u = User.objects.get(uid__lt=-1) #DoesNotExist 匹配失敗
first()和last()
User.objects.all().first() #返回結(jié)果集中第一條數(shù)據(jù) User.objects.all().last() #返回結(jié)果集中最后一條數(shù)據(jù)
count()
返回結(jié)果集記錄數(shù)目,等價(jià)于select count(*)不會(huì)返回整個(gè)結(jié)果集,相比len方法更有效
User.objects.count()
exists()
判斷查詢集中是否有記錄,有返回True,否則返回False
User.objects.filter(uid=3).exists()
查詢集限制
查詢集類似列表,可以使用下標(biāo)進(jìn)行限制,類似sql語(yǔ)句中的limit子句。但索引不能是負(fù)數(shù)
索引
切片
User.objects.all()[0] #等同于:limit 0,1 User.objects.all()[2] #等同于:limit 2,1 User.objects.all()[0:2] #等同于limit 2 User.objects.all()[:2] #等同于limit 2 User.objects.all()[::2]
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享django可以用什么數(shù)據(jù)庫(kù)查詢內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!
文章題目:django可以用什么數(shù)據(jù)庫(kù)查詢-創(chuàng)新互聯(lián)
URL分享:http://muchs.cn/article2/pojoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、外貿(mào)建站、網(wǎng)站內(nèi)鏈、網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容