1. 程式人生 > >Django objects.all()、objects.get()與objects.filter()之間的區別介紹

Django objects.all()、objects.get()與objects.filter()之間的區別介紹

http://www.jb51.net/article/115933.htm
前言
本文主要介紹的是關於Django objects.all()、objects.get()與objects.filter()直接區別的相關內容,文中介紹的非常詳細,需要的朋友們下面來一起看看詳細的介紹:

示例程式碼

ret=UserInfo.objects.all()

all返回的是QuerySet物件,程式並沒有真的在資料庫中執行SQL語句查詢資料,但支援迭代,使用for迴圈可以獲取資料。


ret=UserInfo.objects.get(id='1')

get返回的是Model物件,型別為列表,說明使用get方法會直接執行sql語句獲取資料

ret=UserInfo.objects.filter()

filter和get類似,但支援更強大的查詢功能
補充:
條件選取querySet的時候,filter表示=,exclude表示!=。
querySet.distinct() 去重複
__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
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如有疑問大家可以留言交流