···
新建一個對象的方法有以下幾種:
Person.objects.create(name=name,age=age)
p = Person(name="WZ", age=23)
p.save()
p = Person(name="TWZ")
p.age = 23
p.save()
Person.objects.get_or_create(name="WZT", age=23)
這種方法是防止重復很好的方法,但是速度要相對慢些,返回一個元組,第一個為Person對象,第二個為True或False, 新建時返回的是True, 已經存在時返回False.
獲取對象有以下方法:
Person.objects.all()
Person.objects.all()[:10] 切片操作,獲取10個人,不支持負索引,切片可以節約內存
Person.objects.get(name=name)
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歲的
···