真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

django可以用什么數(shù)據(jù)庫查詢

這篇文章主要介紹了django可以用什么數(shù)據(jù)庫查詢,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺(tái)為眾多戶提供成都西信服務(wù)器托管 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。

數(shù)據(jù)查詢

要從數(shù)據(jù)庫檢索數(shù)據(jù),首先要獲取一個(gè)*查詢集***(QuerySet),查詢集表示從數(shù)據(jù)庫獲取的對(duì)象集合,它可以有零個(gè),一個(gè)或多個(gè)過濾器。返回查詢集的方法,稱為過濾器,過濾器根據(jù)給定的參數(shù)縮小查詢結(jié)果范圍,相當(dāng)于sql語句中where或limit。

在管理器上調(diào)用過濾器方法會(huì)返回查詢集,

查詢集經(jīng)過過濾器篩選后返回新的查詢集,因此可以寫成鏈?zhǔn)竭^濾,

惰性執(zhí)行:創(chuàng)建查詢集不會(huì)帶來任何數(shù)據(jù)庫的訪問,直到調(diào)用數(shù)據(jù)時(shí),才會(huì)訪問數(shù)據(jù)庫,

以下對(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è)值

下面這些方法后面不能再跟其他過濾方法,因?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語句中的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ù)庫查詢內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!


當(dāng)前名稱:django可以用什么數(shù)據(jù)庫查詢
本文鏈接:http://weahome.cn/article/psdepe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部