python web-Django ORM常用查詢方式

前言

Django默認自帶的ORM功能非常強大,調用執行的方法去查詢即可,不需要自己去寫SQL了。

python web-Django ORM常用查詢方式


常用參數

__exact 精確等於 like 'aaa'

__iexact 精確等於 忽略大小寫 ilike 'aaa'

__contains 包含 like '%aaa%'

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

__gt 大於

__gte 大於等於

__lt 小於

__lte 小於等於

__in 存在於一個list範圍內

__startswith 以…開頭

__istartswith 以…開頭 忽略大小寫

__endswith 以…結尾

__iendswith 以…結尾,忽略大小寫

__range 在…範圍內

__year 日期字段的年份

__month 日期字段的月份

__day 日期字段的日

__isnull=True/False

__isnull=True 與 __exact=None的區別


實例

檢索特定的對象

使用以下兩個方法:

fileter(**kwargs)

返回一個與參數匹配的QuerySet,相當於等於(=).

exclude(**kwargs)

返回一個與參數不匹配的QuerySet,相當於不等於(!=)。

QuerySet方法

# 這是查找前5個entry表裡的數據

Entry.objects.all()[:5]

# 這是查找從第5個到第10個之間的數據。

Entry.objects.all()[5:10]

# 這是查詢從第0個開始到第10個,步長為2的數據。

Entry.objects.all()[:10:2]

# 模糊查詢

Entry.objects.get(headline__contains=’Lennon’)

 Q對象的複雜查詢 

 Q(question__startswith=’Who’) | Q(question__startswith=’What’) Poll.objects.get(Q(question__startswith=’Who’), Q(pub_date=date(2018, 6, 1)) | Q(pub_date=date(2018, 6,4)) )

總結

人生苦短,我用Python!快速完成任務!

python web-Django ORM常用查詢方式



分享到:


相關文章: