django 查詢集選擇器(代替不等號)

2021-08-28 02:02:03 字數 2335 閱讀 9950

django 中用於取代sql,用於資料表查詢的語法叫做orm查詢集,但是在實用查詢集的時候一般只能通過filter獲取等值屬性,例如:ob.filter(number=3),而一旦使用不等號,就會報錯例如:

q = ob.objects.filter(number > item.number)

nameerror: name 'number' is not defined

或者:

q = ob.objects.filter('number' > 'item.number')

typeerror: 'bool' object is not iterable

但是實際情況上來說,很多時候直接使用不等號會更加方便減少多行**,減少邏輯混亂的風險,而django就提供了過濾器這一選項。

以下便是幾種較常用的選擇器:(帶有ob的表示是物件自帶的屬性)

__exact        精確等於

__iexact    精確等於 忽略大小寫

__contains    包含

q = ob.objects.filter(name__contains='list')

獲取name屬性中包含list字元的資料

__icontains    包含 忽略大小寫,但是對於sqlite來說,contains的作用效果等同於icontains

同上但是忽略大小寫

__gt    大於

q = ob.objects.filter(date__gte=datetime.date.today())

獲取date屬性大於當前時間的資料(時間上的大於應該指的是過去吧)

__gte    大於等於

q = ob.objects.filter(number__gte=3)

獲取number屬性大於3的資料

__lt    小於

q = ob.objects.filter(ob_number__lt=ob_pro_number)

獲取自帶的number屬性值小於自帶的pro_number屬性的資料

__lte    小於等於

__in     存在於乙個list範圍內

q = ob.objects.filter(name__in=lista)

獲取name屬性的值在lista表單中的資料,例如獲取名字在優惠商品名稱陣列中的商品

__startswith   以...開頭

q = ob.objects.filter(name__startswith='ap')

獲取name屬性以ap開頭的資料(大小寫嚴格)

__istartswith   以...開頭 忽略大小寫......效果同上,但是忽略大小寫

__endswith     以...結尾

q = ob.objects.filter(name__startswith='le')

獲取name屬性以le結尾的資料,大小寫嚴格

__iendswith    以...結尾,忽略大小寫......效果同上,但是忽略大小寫

__range    在...範圍內

q = ob.objects.filter(date__range=["2011-01-01", "2011-01-31"])

獲取date屬性值在這個日期之間的資料

__year       日期欄位的年份

q = ob.objects.filter(date__year=2017)

獲取date屬性的年份欄位為2017的資料

__month    日期欄位的月份

q = ob.objects.filter(date__year=4)

獲取date屬性的月份欄位為4的資料

__day        日期欄位的日

q = ob.objects.filter(date__year=20)

獲取date屬性的日期欄位為20的資料

__isnull=true/false

q = ob.objects.filter(name__isnull=true) 

獲取name屬性值為空的資料

同時與filter相反的object屬性為exclude

filter表示=,exclude表示!=

將上述語句中的filter替換成exclude將獲得相反的資料

交集選擇器與並集選擇器

交集選擇器 數學中 區域一和區域二共同擁有的部分為區域三,則區域三就為區域一和區域二的交集。css中 標籤一和標籤二相同的部分就為交集選擇器。系統所找到的標籤必須滿足 既有標籤一的特點,也有標籤二的特點。系統找到的標籤為 1 標籤一 id 標籤二 或 2 標籤一 class 標籤二 或 3 標籤 i...

CSS並集選擇器

css並集選擇器也叫群選擇器,是由多個選擇器通過逗號連線在一起的,這些選擇器分別是 標籤選擇器 類選擇器或id選擇器等。在宣告各種css選擇器時,如果某些選擇器的風格完全相同,或者部分相同,便可以利用並集選擇器同時宣告這些風格相同的css選擇器。並集選擇器允許同時給多個選擇器應用同一種樣式。並集選擇...

jquery選擇器及選擇集過濾

選擇器 jquery的選擇器只是用來選擇html頁面當中的標籤,css選擇器是用來選擇標籤並新增樣式,query選擇器的規則和css選擇器的規則一致 jquery length屬性包含jquery 物件中元素的數目,length屬性可以用來判斷標籤是否被選中 lang en charset utf ...