濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Django中常用的查詢(xún)數(shù)據(jù)方法及查詢(xún)對(duì)象的條件詳解

Django中常用的查詢(xún)數(shù)據(jù)方法及查詢(xún)對(duì)象的條件詳解

熱門(mén)標(biāo)簽:萊蕪電信外呼系統(tǒng) 鶴壁手機(jī)自動(dòng)外呼系統(tǒng)違法嗎 企業(yè)微信地圖標(biāo)注 高德地圖標(biāo)注收入咋樣 地圖標(biāo)注多個(gè) 怎么辦理400客服電話(huà) B52系統(tǒng)電梯外呼顯示E7 銀川電話(huà)機(jī)器人電話(huà) 沈陽(yáng)防封電銷(xiāo)電話(huà)卡

(1)常用的查詢(xún)方法:

1.獲取所有記錄:

s = User.objects.all()

2.獲取第一條數(shù)據(jù):

s = User.objects.first()

3.獲取最后一條數(shù)據(jù):

s = User.objects.last()

關(guān)于二、三兩個(gè)方法注意點(diǎn):

對(duì)于QuerySet對(duì)象,我們也是可以通過(guò)下標(biāo)取值獲取對(duì)應(yīng)的實(shí)例對(duì)象。如下所示——雖然這兩個(gè)方法作用一致(獲取到對(duì)應(yīng)的實(shí)例對(duì)象),但是推薦使用(而且一般使用的)都是first()方法及l(fā)ast()方法。

原因——如果查詢(xún)的數(shù)據(jù)不存在的話(huà),使用下標(biāo)查詢(xún)會(huì)報(bào)錯(cuò);但是使用first()方法不會(huì)報(bào)錯(cuò),會(huì)返回None。

s = User.objects.filter(age=18).first()     #獲取QuerySet中的第一條數(shù)據(jù)
s2 = User.objects.filter(age=18).last()     #獲取QuerySet中的最后一條數(shù)據(jù)
s = User.objects.filter(age=18)[0]
print(s)

應(yīng)用場(chǎng)景:

a = User.objects.get(id=56)             #使用get方法獲取一個(gè)實(shí)例對(duì)象,我們可以保證id不會(huì)重復(fù),但是不能保證id為56的數(shù)據(jù)是否存在
#但是使用.first()方法哪怕它不存在也不會(huì)報(bào)錯(cuò)!
a = User.objects.filter(id=56).first()

4.根據(jù)參數(shù)提供的條件獲取過(guò)濾后的記錄:

【注意:filter(**kwargs)方法:根據(jù)參數(shù)提供的提取條件,獲取一個(gè)過(guò)濾后的QuerySet】

s = User.objects.filter(name= "xiaoming" )	# 過(guò)濾得到name為xiaoming的數(shù)據(jù)

5.排除name為xiaoming的數(shù)據(jù):

s = User.objects.exclude(name='xiaoming')

6.獲取一個(gè)記錄對(duì)象:

【注意:get返回的對(duì)象具有唯一性質(zhì),如果符合條件的對(duì)象有多個(gè),則get報(bào)錯(cuò)!】

s = User.objects.get(name = "xiaoming" )

7.對(duì)結(jié)果排序:

#根據(jù)age升序排序:
c = User.objects.all().order_by("age")
#根據(jù)age逆向排序:
c2 = User.objects.all().order_by("-age")
#雙重排序:age升序排序,如果有age相同的則以id升序排序:
c3 = User.objects.all().order_by("age","id")

8.將返回的QuerySet中的Model轉(zhuǎn)換為字典:

s = User.objects.all().values()
#作用:現(xiàn)在是字典形式了(之前的QuerySet是類(lèi)似于列表的對(duì)象),就可以使用字典的方法進(jìn)行獲取數(shù)據(jù)了:
print(s[0].get("name"))

QuerySet對(duì)象格式:

QuerySet [User: name:taka, age:18>, User: name:xiaopo, age:18>, User: name:xiaohong, age:18>]>

使用values()方法轉(zhuǎn)變后的格式:

QuerySet [{'id': 1, 'name': 'taka', 'age': 18}, {'id': 2, 'name': 'xiaopo', 'age': 18}, {'id': 3, 'name': 'xiaohong', 'age': 18}]>

9.獲取當(dāng)前查詢(xún)到的數(shù)據(jù)的總數(shù):

e = User.objects.count()	 # (所有QuerySet對(duì)象都可以使用此方法)

(2)常用的查詢(xún)對(duì)象的條件:

查找對(duì)象的條件的意思是傳給以上方法的一些參數(shù)。相當(dāng)于是SQL語(yǔ)句中的where語(yǔ)句后面的條件,語(yǔ)法為字段名__規(guī)則!

1.exact相當(dāng)于等號(hào):(以下兩種方法作用一致!)

rs = User.objects.filter(name__exact='xiaoming')
rs = User.objects.filter(name='xiaoming')

2.iexact:跟exact差不多,只是忽略大小寫(xiě)的匹配。

3.contains 包含:

rs = User.objects.filter(name__contains='xiao')     #查詢(xún)name屬性值中包含xiao的

4.icontains跟contains差不多,只是忽略大小寫(xiě)。

5.startwith 以什么開(kāi)始:

rs = User.objects.filter(name__startswith='xiao')  # 查詢(xún)name屬性值以xiao開(kāi)頭的

6.istartwith跟startwith差不多,只是忽略大小寫(xiě)。

7.endwith 以什么結(jié)尾:。

8.isendwith跟endwith差不多,只是忽略大小寫(xiě)。

9.in 成員所屬:

rs = User.objects.filter(age__in=[18,19,20])  # 查詢(xún)age值為18,19,20的數(shù)據(jù)

10.gt大于

rs = User.objects.filter(age__gt=20)  # 查詢(xún)age值大于20的數(shù)據(jù)

11.gte 大于等于。

12.lt 小于。

13.lte 小于等于。

14.range 區(qū)間,包含兩頭。

rs = User.objects.filter(age__range=(18,20))  # 查詢(xún)age值在18-20之間的數(shù)據(jù)(包含18和20)

15.isnull 判斷是否為空。

總結(jié)

到此這篇關(guān)于Django中常用的查詢(xún)數(shù)據(jù)方法及查詢(xún)對(duì)象的條件的文章就介紹到這了,更多相關(guān)Django查詢(xún)數(shù)據(jù)方法及條件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Django中對(duì)數(shù)據(jù)查詢(xún)結(jié)果進(jìn)行排序的方法
  • django 按時(shí)間范圍查詢(xún)數(shù)據(jù)庫(kù)實(shí)例代碼
  • Django框架中數(shù)據(jù)的連鎖查詢(xún)和限制返回?cái)?shù)據(jù)的方法
  • Django 查詢(xún)數(shù)據(jù)庫(kù)并返回頁(yè)面的例子
  • 在django中查詢(xún)獲取數(shù)據(jù),get, filter,all(),values()操作
  • Django查詢(xún)數(shù)據(jù)庫(kù)的性能優(yōu)化示例代碼
  • Django分頁(yè)查詢(xún)并返回jsons數(shù)據(jù)(中文亂碼解決方法)

標(biāo)簽:安慶 湘西 三亞 烏魯木齊 呼倫貝爾 呼倫貝爾 銀川 葫蘆島

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Django中常用的查詢(xún)數(shù)據(jù)方法及查詢(xún)對(duì)象的條件詳解》,本文關(guān)鍵詞  Django,中常,用的,查詢(xún),數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Django中常用的查詢(xún)數(shù)據(jù)方法及查詢(xún)對(duì)象的條件詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Django中常用的查詢(xún)數(shù)據(jù)方法及查詢(xún)對(duì)象的條件詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    华宁县| 紫云| 昭觉县| 阳高县| 吉水县| 佛山市| 东源县| 汝阳县| 阿拉善左旗| 兴安县| 中阳县| 墨竹工卡县| 台南市| 汉阴县| 安丘市| 阿拉善盟| 新巴尔虎右旗| 炉霍县| 舒兰市| 鄱阳县| 连州市| 信宜市| 鹤岗市| 巴东县| 沂源县| 浦北县| 隆回县| 柞水县| 耒阳市| 湘潭县| 福清市| 池州市| 左云县| 教育| 耒阳市| 调兵山市| 福海县| 伊川县| 石楼县| 醴陵市| 尖扎县|