Django常用ORM操作|徐奧雯編輯整理|Django操作MySQL數(shù)據(jù)庫(kù)|XUAOWEN
增加:?
數(shù)據(jù)表類名.objects.create(age=‘11’, name=‘jack’) # 增加一條數(shù)據(jù),可以接受字典類型數(shù)據(jù) **kwargs
數(shù)據(jù)表類名(name=’xuaowen’).save()
例如:
obj = Chu_ban_she(name=‘00001’)
obj.save()
刪除:
數(shù)據(jù)行對(duì)象. delete()
例:數(shù)據(jù)表類名.objects.filter(name=‘tom’).delete() # 刪除指定條件的數(shù)據(jù)
修改:
數(shù)據(jù)行對(duì)象.屬性 = ‘新的值’
obj.save() #保存更改 # 重要
例: obj = 數(shù)據(jù)表類名…objects.get(id=1)
obj.age = ‘10’
查詢:
數(shù)據(jù)表類名.objects.all() # 獲取數(shù)據(jù)表所有行對(duì)象 得到對(duì)象列表
數(shù)據(jù)表類名.objects.get(id=1) # 根據(jù)條件獲取單條數(shù)據(jù),不存在則報(bào)錯(cuò) 不可以查詢多個(gè)
數(shù)據(jù)表類名. objects.filter(id=20) # 查詢出所有滿足條件的對(duì)象 返回對(duì)象列表 如果查詢不到返回空列表
數(shù)據(jù)表類名.objects.exclude(id=10) # 查詢出所有不滿足條件的對(duì)象 返回對(duì)象列表
數(shù)據(jù)表類名.objects.all().values() # 取具體數(shù)據(jù) 返回對(duì)象列表 每個(gè)對(duì)象為字典 為{字段:值} ,h還可以指定參數(shù) 例如: .values(‘id‘)
數(shù)據(jù)表類名.objects.all().values_list() # 與上一條類似 返回元組
數(shù)據(jù)表類名.objects.all().order_by(‘id’) # 按照id正序排序
數(shù)據(jù)表類名.objects.all().order_by(‘-id’) # 按照id倒序排序 order_by(‘-id’,name‘‘) 可接多個(gè)參數(shù)如果按照第一個(gè)參數(shù)出現(xiàn)重復(fù)數(shù)值則按照第二個(gè)參數(shù)排序
數(shù)據(jù)表類名.objects.all().order_by(‘id’).reverse() # 反轉(zhuǎn)排序 不能直接使用于.all()后
數(shù)據(jù)表類名.objects.distinct() # 去除重復(fù)
數(shù)據(jù)表類名.objects.all().count() # 統(tǒng)計(jì)返回對(duì)象個(gè)數(shù)
數(shù)據(jù)表類名.objects.all().first() # 返回第一個(gè)對(duì)象
數(shù)據(jù)表類名.objects.all().last() # 返回最后一個(gè)對(duì)象
數(shù)據(jù)表類名.objects.all().exists() # 檢查返回是否為空 布爾值
數(shù)據(jù)表類名.objects.filter(id__gt=3) # 獲取id大于3的對(duì)象
數(shù)據(jù)表類名.objects.filter(id__lt=3) # 獲取id小于3的對(duì)象
數(shù)據(jù)表類名.objects.filter(id__gte=3) # 獲取id大于等于3的對(duì)象
數(shù)據(jù)表類名.objects.filter(id__gle=3) # 獲取id小于等于3的對(duì)象
數(shù)據(jù)表類名.objects.filter(id__in=[2,3,5]) # 獲取id等于2,3,5的對(duì)象
數(shù)據(jù)表類名.objects.filter(id__gt=1, id__lt=10) # 獲取id大于1 且 小于10的對(duì)象
數(shù)據(jù)表類名. objects.filter(id__range=[5, 8]) # 獲取id在5-8之間的對(duì)象 包括5和8
數(shù)據(jù)表類名. objects.filter(shuiguo__contains=’蘋果’) # 獲取shuiguo字段中包含蘋果的對(duì)象
數(shù)據(jù)表類名. objects.filter(shuiguo__icontains=’蘋果’) # 獲取shuiguo字段中包含蘋果的對(duì)象 忽略大小寫
數(shù)據(jù)表類名. objects.filter(name__startswith=’a’) # 獲取name字段以a開頭的對(duì)象
數(shù)據(jù)表類名. objects.filter(name__istartswith=’a’) # 獲取name字段以a開頭的對(duì)象 忽略大小寫
數(shù)據(jù)表類名. objects.filter(name__endswith=’a’) # 獲取name字段以a結(jié)尾的對(duì)象