添加表記錄
對於單表有兩種方式
#添加數據的兩種方式 #方式一:實例化表的對象 就是一條記錄 student_obj = models.Student(name="zzp",course="python",birth="2019-9-19",grade=80) student_obj.save() #方式二 models.Student.objects.create(name="zzp",course="python",birth="2019-9-19",grade=80)
查詢表記錄
查詢相關API
# 查詢相關API # 1、all():查看所有 student_obj = models.Student.objects.all() print(student_obj) #打印的結果是QuerySet集合 # 2、filter():可以實現且關系,但是或關系需要借助Q查詢實現。。。 # 查不到的時候不會報錯 print(models.Student.objects.filter(name="Frank")) #查看名字是Frank的 print(models.Student.objects.filter(name="Frank",fenshu=80)) #查看名字是Frank的並且分數是80的 # 3、get():如果找不到就會報錯,如果有多個值,也會報錯,只能拿有一個值的 print(models.Student.objects.get(name="Frank")) #拿到的是model對象 print(models.Student.objects.get(nid=2)) #拿到的是model對象 # 4、exclude():排除條件 print( models.Student.objects.exclude(name="海東")) #查看除了名字是海東的信息 # 5、values():是QuerySet的一個方法 (吧對象轉換成字典的形式了,) print(models.Student.objects.filter(name="海東").values("nid","course")) #查看名字為海東的編號和課程 #打印結果:<QuerySet [{'nid': 2, 'course': 'python'}, {'nid': 24, 'course': 'python'}]> # 6、values_list():是queryset的一個方法 (吧對象轉成元組的形式了) print(models.Student.objects.filter(name="海東").values_list("nid", "course")) #打印結果:< QuerySet[(2, 'python'), (24, 'python')] > # 7、order_by():排序 print(models.Student.objects.all().order_by("fenshu")) # 8、reverse():倒序 print(models.Student.objects.all().reverse()) # 9、distinct():去重(只要結果里面有重復的) print(models.Student.objects.filter(course="python").values("fenshu").distinct()) # 10、count():查看有幾條記錄 print(models.Student.objects.filter(name="海東").count()) # 11、first() # 12、last() return render(request,"test.html",{"student_obj":student_obj}) # 13、esits:查看有沒有記錄,如果有返回True,沒有返回False # 並不需要判斷所有的數據, # if models.Book.objects.all().exists()
基於雙下划線的查詢
#大於 小於 大於等於 小於等於 filter(price__gt='90') filter(price__lt = '90') filter(price__gte='90') filter(price__lte='90') #存在與某幾個條件中 filter(price__in=['11','22',''33]) #在某個范圍內 filter(price__range=[50,90]) #模糊查詢 filter(title__contains='西') #查詢標題有西這個字的 filter(title__icontains='P') # icontains對於大小寫不敏感 #以什么開頭以什么結尾 startswith,istartswith, endswith, isendswith #按年查詢 按月查詢 filter(create_time__year='2017') filter(create_time__month='9')
修改表記錄
#先找出對象,然后通過對象點語法修改屬性,后調用對象保存方法 author_obj = Author.objects.get(id=5) author_obj.name = 'tenglan' author.save() #直接使用update()方法 QuerySet()對象的方法 Publisher.objects.filter(id=2).update(name='American publisher')
刪除表記錄
刪除方法就是delete().它運行時立即刪除對象而不返回任何值。例如:e.delete()
#使用 QuerySet()對象方法delete()刪除 ,此刪除是將QuerySet所有對象刪除 models.Student.objects.filter(nid=4).delete() #也可以找到其中一個對象,用對象點方法 user_obj = models.User.objects.filter().first() user_obj.delete()