重点先来说一下查
查询到一个结果集合
直接使用Student.objects.get(pk=1).name就可以获取到模板的值
-
filter() 得到符合要求的
# __gt大于__lt小于 __gte小于等于 Student.objects.filter(chinese__gt=80) Student.objects.filter(chinese__lt=70) Student.objects.filter(chinese__lt=80, math__gt=75) # in Student.objects.filter(chinese__in=[80,85]) # 模糊查询startswith,endswith,contains Student.objects.filter(name__startswith="w") # 聚合函数的使用aggregate ,Max(),Min(),Sum(),Count(),Avg() 需要导包使用alt+enter Student.objects.aggregate(Max("chinese"))# 获取语文最高分 #order_by()可以对查询的结果集进行排序 Student.objects.order_by("chinese")# 从小到大 Student.objects.all().order_by("-chinese")# 从大到小 # [:]切片 Student.objects.all()[1:2] # 只显示第二条数据 # Q函数和F函数 需要导入包 # 查看语文成绩小于60或者大于80的 & | ~ 与或非 Student.objects.filter(Q(chinese__gt=80) | Q(chinese__tl=60)) # F函数 可以比较自身的属性,查找到语文成绩大于数学的人 Student.objects.filter(chinese__gt=F("math"))
-
exculde() 去掉符合要求的 和filter相反没什么好讲的
-
all()得到所有
Student.objects.all()得到所有数据
-
count() 得到总的数据条数 ,也可以用来查询结果集的条数
Student.objects.count() Student.objects.all().count()
增
-
使用save()
stu = Student() stu.name="lmz" stu.sex="boy" stu.save() # 保存到数据库
-
使用create()
Student.objects.create(name=“lmz”,sex=“boy”)
这句话直接保存到了数据库
删
-
使用delete()可以删除单条数据也可以删除一个结果集合
Student.objects.all().delete() # 删除了所有的数据 Student.objects.get(pk=1).delete()# 删除了单挑数据
改
-
使用update()可以修改一个结果集合
# 将语文成绩大于八十的同学数学成绩都更新为60分 Student.objects.filter(chinese__gt=80).update(math=60)
-
使用save() 一次只能修改一条数据
# 使用save()只能修改一条数据 stu = Student.objects.get(pk=1) stu.math=60 stu.save()