(1) all(): 查詢全部結果 # 返回的QuerySet類型 (2) filter(**kwargs): 它包含了與所給篩選條件相匹配的對象 #返回的QuerySet類型 (3) get(**kwargs): 返回與所給篩選條件相匹配的對象,返回結果有且只有一個, #返回的models對象 若是符合篩選條件的對象超過一個或者沒有都會拋出錯誤。 (4) exclude(**kwargs): 它包含了與所給篩選條件不匹配的對象 #返回的QuerySet類型 (5) values(*field): 返回一個ValueQuerySet——一個特殊的QuerySet,運行後獲得的並非一系列 #返回的QuerySet類型 model的實例化對象,而是一個可迭代的字典序列 (6) values_list(*field): 它與values()很是類似,它返回的是一個元組序列,values返回的是一個字典序列 #返回的QuerySet類型 (7) order_by(*field): 對查詢結果排序 (8) reverse(): 對查詢結果反向排序 (9) distinct(): 從返回結果中剔除重複紀錄 (10) count(): 返回數據庫中匹配查詢(QuerySet)的對象數量。 (11) first(): 返回第一條記錄 #返回的models對象 (12) last(): 返回最後一條記錄 #返回的models對象 (13) exists(): 若是QuerySet包含數據,就返回True,不然返回False
(1)models.Tb1.objects.filter(id__lt=10, id__gt=1) # 獲取id大於1 且 小於10的值 (2)models.Tb1.objects.filter(id__in=[11, 22, 33]) # 獲取id等於十一、2二、33的數據 (3)models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in (4)models.Tb1.objects.filter(name__contains="ven") #字段包含指定值的
(5)models.Tb1.objects.filter(name__icontains="ven") # icontains大小寫不敏感
(6)models.Tb1.objects.filter(id__range=[1, 2]) # 範圍bettwen and
(7)還有startswith,istartswith, endswith, iendswith之類
class Something(models.Model): name = models.CharField(max_length=32) class UserType(models.Model): caption = models.CharField(max_length=32) s = models.ForeignKey('Something',on_delete=models.CASCADE)
class UserInfo(models.Model):
user = models.CharField(max_length=32)
pwd = models.CharField(max_length=32)
user_type = models.ForeignKey('UserType') # user_type_id
userinfo_obj = UserInfo.objects.all()
查詢到的是裏面包含多個UserInfo對象,取第一個UserInfo對象則python
userinfo_obj[0]
取第一個對象的值則爲數據庫
id = userinfo_obj[0].user.id user = userinfo_obj[0].user.user pwd = userinfo_obj[0].user.pwd
建立數據一步到位django
UserInfo.objects.create(user='abj','pwd'='111',user_type_id=3)
反向查詢其餘表的數據雙下劃線__很重要!如查詢‘普通用戶’用user_type__caption便可spa
q = UserInfo.objcets.filter(user_type__caption='普通用戶')