6.DJango在views裡面對獲取資料進行操作

Alpaca_發表於2018-05-16

文章僅供學習,錯誤歡迎提出

Person.objects.all() # 查詢所有 Person.objects.all()[:10] 切片操作,獲取10個人,不支援負索引,切片可以節約記憶體,不支援負索引 Person.objects.get(name="WeizhongTu") # 名稱為 WeizhongTu 的一條,多條會報錯

get是用來獲取一個物件的,如果需要獲取滿足條件的一些人,就要用到filter Person.objects.filter(name="abc") # 等於Person.objects.filter(name__exact="abc") 名稱嚴格等於 "abc" 的人 Person.objects.filter(name__iexact="abc") # 名稱為 abc 但是不區分大小寫,可以找到 ABC, Abc, aBC,這些都符合條件

Person.objects.filter(name__contains="abc") # 名稱中包含 "abc"的人 Person.objects.filter(name__icontains="abc") #名稱中包含 "abc",且abc不區分大小寫

Person.objects.filter(name__regex="^abc") # 正規表示式查詢 Person.objects.filter(name__iregex="^abc")# 正規表示式不區分大小寫

filter是找出滿足條件的,當然也有排除符合某條件的

Person.objects.exclude(name__contains="WZ") # 排除包含 WZ 的Person物件 Person.objects.filter(name__contains="abc").exclude(age=23) # 找出名稱含有abc, 但是排除年齡是23歲的

相關文章