增操作
# 1
Person.objects.create(name = name, age = age)
# 2
p = Person(name = name, age = age)
p.save()
# 3
p = Person(name = name)
p.age = age
p.save()
# 4
Person.objects.get_or_create(name = name, age = age)
第四種方法是防止重復(fù)的很好方法,但是速度相對較慢三妈,返回一個元祖陪腌,第一個為 Person 對象辱魁,第二個為 True 或 False 布爾量。新建時返回的是 True诗鸭,已經(jīng)存在時返回 False染簇。
查操作
# 1
Person.objects.all()
# 2. 切片操作,獲取10個人只泼,不支持負(fù)索引剖笙,切片可以節(jié)約內(nèi)存
Person.objects.all()[:10]
# 3
Person.objects.get(name = name)
# 4. get是用來獲取一個對象的,如果需要獲取滿足條件的一些人请唱,就要用到 filter
Person.objects.filter(name = "abc")
# 5. 名稱為 abc 但是不區(qū)分大小寫弥咪,可以找到 ABC, Abc, aBC,這些都符合條件
Person.objects.filter(name__iexact = "abc")
# 6. 名稱中包含 "abc"的人
Person.objects.filter(name__contains = "abc")
# 7. 名稱中包含 "abc"十绑,且abc不區(qū)分大小寫
Person.objects.filter(name__icontains = "abc")
# 8. 正則表達式查詢
Person.objects.filter(name__regex = "^abc")
# 9. 正則表達式不區(qū)分大小寫
Person.objects.filter(name__iregex = "^abc")
# 10. 排除包含 WZ 的Person對象
Person.objects.exclude(name__contains = "WZ")
# 11. 找出名稱含有abc, 但是排除年齡是23歲的
Person.objects.filter(name__contains="abc").exclude(age = 23)