欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年09月03日 14:22:23   作者:孤寒者  
在web 開發(fā)過程中,Django 與后臺數(shù)據(jù)庫的交互是必不可少的一項,也是實現(xiàn)業(yè)務邏輯所需數(shù)據(jù)的重要方式,這篇文章主要給大家介紹了關于Django中常用的查詢數(shù)據(jù)方法及查詢對象條件的相關資料,需要的朋友可以參考下

(1)常用的查詢方法:

1.獲取所有記錄:

s = User.objects.all()

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

s = User.objects.first()

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

s = User.objects.last()

關于二、三兩個方法注意點:

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

原因——如果查詢的數(shù)據(jù)不存在的話,使用下標查詢會報錯;但是使用first()方法不會報錯,會返回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)

應用場景:

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

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

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

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

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

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

6.獲取一個記錄對象:

【注意:get返回的對象具有唯一性質,如果符合條件的對象有多個,則get報錯!】

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

7.對結果排序:

#根據(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轉換為字典:

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

QuerySet對象格式:

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

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

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

9.獲取當前查詢到的數(shù)據(jù)的總數(shù):

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

(2)常用的查詢對象的條件:

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

1.exact相當于等號:(以下兩種方法作用一致!)

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

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

3.contains 包含:

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

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

5.startwith 以什么開始:

rs = User.objects.filter(name__startswith='xiao')  # 查詢name屬性值以xiao開頭的

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

7.endwith 以什么結尾:。

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

9.in 成員所屬:

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

10.gt大于

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

11.gte 大于等于。

12.lt 小于。

13.lte 小于等于。

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

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

15.isnull 判斷是否為空。

總結

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

相關文章

  • python使用import引入其他目錄文件方式

    python使用import引入其他目錄文件方式

    這篇文章主要介紹了python使用import引入其他目錄文件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • IPython?8.0?Python?命令行交互工具

    IPython?8.0?Python?命令行交互工具

    這篇文章主要介紹了IPython?8.0?Python?命令行交互工具,IPython?是?Python?的原生交互式?shell?的增強版,可以完成許多不同尋常的任務,下面我們就拉看看文章具體的介紹內(nèi)容吧
    2022-01-01
  • python實現(xiàn)交并比IOU教程

    python實現(xiàn)交并比IOU教程

    這篇文章主要介紹了python實現(xiàn)交并比IOU教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • windows系統(tǒng)多個python中更改默認python版本

    windows系統(tǒng)多個python中更改默認python版本

    這篇文章主要給大家介紹了關于windows系統(tǒng)多個python中更改默認python版本的相關資料,在Python開發(fā)中,不同的項目往往需要使用不同的Python版本,需要的朋友可以參考下
    2023-09-09
  • Python OpenCV處理圖像之圖像像素點操作

    Python OpenCV處理圖像之圖像像素點操作

    這篇文章主要為大家詳細介紹了Python OpenCV處理圖像之圖像像素點操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Django項目中包含多個應用時對url的配置方法

    Django項目中包含多個應用時對url的配置方法

    今天小編就為大家分享一篇Django項目中包含多個應用時對url的配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python集成C#實現(xiàn)界面操作下載文件功能的全過程

    Python集成C#實現(xiàn)界面操作下載文件功能的全過程

    使用腳本進行下載的需求很常見,下面這篇文章主要給大家介紹了關于Python集成C#實現(xiàn)界面操作下載文件功能的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • 使用python接受tgam的腦波數(shù)據(jù)實例

    使用python接受tgam的腦波數(shù)據(jù)實例

    這篇文章主要介紹了使用python接受tgam的腦波數(shù)據(jù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python+Redis實現(xiàn)布隆過濾器

    Python+Redis實現(xiàn)布隆過濾器

    布隆過濾器(Bloom Filter)是1970年由布隆提出的。它實際上是一個很長的二進制向量和一系列隨機映射函數(shù)。這篇文章主要介紹了Python+Redis實現(xiàn)布隆過濾器,需要的朋友可以參考下
    2019-12-12
  • LangChain簡化ChatGPT工程復雜度使用詳解

    LangChain簡化ChatGPT工程復雜度使用詳解

    這篇文章主要為大家介紹了LangChain簡化ChatGPT工程復雜度使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論