Django配置
定义模型类
class StudentsInfo(models.Model):
name = models.CharField(max_length=20)
birth = models.DateField(null=False)
模型迁移
数据库的操作
数据的增删改
添加:
1、通过构造方法和save函数
stu1 = StudentsInfo(
name='jay',
birth='1994-12-12'
)
stu1.save()
2、通过类对象create方法实现
StudentsInfo.objects.create(
name='jy',
birth='1998-12-24'
)
删除:
首先需要查询需要删除的对象,使用filter函数和get函数获取对象。然后调用对象的delete()方法。
stu1.delete()
StudentsInfo.objects.get(name='jay').delete()
StudentsInfo.objects.filter(name='jay').delete()
修改:
1、通过对象的属性重新赋值,并且调用save方法
stu1.name = 'jiangyong'
stu1.save()
2、通过对象的update方法直接修改
StudentsInfo.objects.get(name='jay').update(name='jiangyong')
数据的查询
基础查询
查询一条数据的信息使用get
StudentsInfo.objects.get(name='jay')
查询多条数据使用filter函数又称条件查询
StudentsInfo.objects.filter(age__gt=20, score__gt=80)
F对象和Q对象
查询两个有关联的数据可以使用F对象
查询学生总成绩大于语文成绩的三倍的学生
StudentsInfo.objects.filter(total_score__gt=F('chinese') * 3)
查询学生英语成绩大于140或者数学查询大于140的学生
StudentsInfo.objects.filter(Q(english_score__gt=140) | Q(math_score__gt=140))
关联查询
查询某个班级的所有同学的姓名
1、获取一个班级
cls1= Classes.objects.filter(name='python')
cls2 = Classes.objects.get(name='java')
2、通过班级查询学生
cls1[0].studentinfo_set.all()
cls2.studentinfo_set.all()
查询集QuerySet
惰性、缓存、限制