添加models模型
学生信息表和班级表
学生为多,班级为一
# 班级
class clas(models.Model):
sclass = models.CharField(max_length=10, verbose_name='班级')
def __str__(self):
return self.sclass
class Meta():
db_table = 'clas'
# 学生信息表
class students(models.Model):
choices = (
(1, '男'),
(2, '女')
)
sid = models.CharField(max_length=10, verbose_name='学号')
sname = models.CharField(max_length=20, verbose_name='姓名')
cid = models.ForeignKey(to='clas', on_delete=models.CASCADE)
sgender = models.BooleanField(choices=choices)
sage = models.CharField(max_length=2, verbose_name='年龄')
smajor = models.CharField(max_length=20, verbose_name='专业')
sbirthday = models.DateTimeField(verbose_name='出生日期')
creadit_points = models.CharField(max_length=5, null=True, verbose_name='学分')
def __str__(self):
return self.sname
class Meta():
db_table = 'student'
视图views
增删改查
1.增加学生信息
# 学生添加
def s_add(request):
if request.method == 'POST':
sid = request.POST.get('sid')
sname = request.POST.get('sname')
sclass = request.POST.get('sclass')
sgender = request.POST.get('sgender')
sage = request.POST.get('sage')
smajor = request.POST.get('smajor')
sbirthday = request.POST.get('sbirthday')
creadit_points = request.POST.get('creadit_points')
students.objects.create(sid=sid, sname=sname, cid=clas(id=sclass),
sgender=sgender, sage=sage, smajor=smajor,
sbirthday=sbirthday, creadit_points=creadit_points)
return redirect('student:s_table')
elif request.method == 'GET':
clasid = clas.objects.all()
return render(request, 's_add.html', {'clasids': clasid})
return render(request, 's_add.html')
2.删除学生信息
# 删除学生信息
def sdelete(request, id):
if request.method == 'GET':
students.objects.filter(id=id).delete()
return redirect('student:s_table')
return redirect('student:s_table')
3.修改学生信息
# 修改学生信息
def supdate(request, id):
if request.method == 'GET':
sids = students.objects.get(id=id)
return render(request, 'supdate.html', {'stu': sids})
elif request.method == 'POST':
sid = request.POST.get('sid')
sname = request.POST.get('sname')
sclass = request.POST.get('sclass')
sgender = request.POST.get('sgender')
sage = request.POST.get('sage')
smajor = request.POST.get('smajor')
sbirthday = request.POST.get('sbirthday')
creadit_points = request.POST.get('creadit_points')
stu = {
'sid': sid,
'sname': sname,
'cid': clas.objects.filter(sclass=sclass)[0],
'sgender': sgender,
'sage': sage,
'smajor': smajor,
'sbirthday': sbirthday,
'creadit_points': creadit_points
}
try:
students.objects.filter(id=id).update(**stu)
return redirect('student:s_table')
except:
return redirect('student:s_table')
4.查找学生信息
# 对班级进行模糊查找
s_ids = students.objects.filter(cid=clas.objects.filter(sclass__contains=keyword)[0]).all()