iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0
Modern Web

Django新手指南系列 第 23

哈士奇(?) 進階查詢-述詞表 江狗(Django) 鐵人Day23

  • 分享至 

  • xImage
  •  

今天來介紹述詞表,它是Django內建進階欄位查詢(field lookup)的用法,它可以讓查詢的範疇更廣,更主觀化的查詢方式。
格式如下:

<欄位名稱>__述詞  #底線*2哦!!

底下範例的欄位名稱可以請植物代理人查看

  • exact
    精確的查詢
    EX:查詢Number欄位為11的資料
    ex:Classlist.objects.filter(number__exact=11)
  • iexact
    忽略大小寫的查詢
    EX:查詢Name欄位為jim的資料
    ex:Classlist.objects.filter(name__iexact='jim')
  • contains
    模糊查詢
    EX:模糊查詢Name欄位為姓陳的所有資料
    ex:Classlist.objects.filter(name__contains ='陳')
  • in
    包含
    EX:查Class包含乙班與戊班的資料
    ex:Classlist.objects.filter(name__in=['乙班','戊班'])
  • gt
    大於
    EX:查詢Number大於10號的資料
    ex:Classlist.objects.filter(name__gt=10)
  • gte
    大於等於
    EX:查詢Number大於等於20號的資料
    ex:Classlist.objects.filter(name__gte=20)
  • lt
    小於
    EX:查詢Number小於26號的資料
    ex:Classlist.objects.filter(name__lt=26)
  • lte
    小於等於
    EX:查詢Number小於等於11號的資料
    ex:Classlist.objects.filter(name__lte=11)
  • startswith
    以(...)為開頭
    EX:查詢Class以二年為開頭的資料
    ex:Classlist.objects.filter(class__startswith='二年')
  • endswith
    以(...)為結尾
    EX:查詢Number以1為結尾的資料
    ex:Classlist.objects.filter(number__startswith=1)
  • range
    在(...)範圍內
    EX:查詢Last_Modified在2022-10-1到2022-10-3的資料
    ex:Classlist.objects.filter(Last__Modified_range=(datetime.date(2022,10,1),datetime.date(2022,10,3))
  • year
    年分
    EX:查詢Last_Modified在2022年的資料
    ex:Classlist.objects.filter(Last_Modified__year=2022)
  • month
    月分
    EX:查詢Upload_Time在8月的資料
    ex:Classlist.objects.filter(Upload_Time__month=8)
  • day

    EX:查詢Upload_Time在10號的資料
    ex:Classlist.objects.filter(Upload_Time__day=10)
  • isnull
    是否是空值
    EX:查詢Upload_Time不為空的資料
    ex:Classlist.objects.filter(Upload_Time__isnull=False)

大致上有這些述詞,在查詢資料時要好好善用它哦!
先到這裡,大家掰掰~

圖片來源:哈士吉


上一篇
啪!沒了 Model常用參數 & 資料表有關指令 江狗(Django) 鐵人Day22
下一篇
我只是一隻貓!!! 動態網址(上) 江狗(Django) 鐵人Day24
系列文
Django新手指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言