这是django开发学生选课系统的最后一篇了,上一篇结束,我们已经知道如何选课(向数据库里面写数据)。
这一篇需要讲解老师门户的成绩录入,相当于对已经存在score表的具有sno(学号)与cno(课程号)的记录,但是还未有或者已有cscore(成绩)的数据,可以按需进行修改。至于其他页面,基本上都是向数据库里面做查询而已,就不再一一展开叙述了。
需求分析:
1)老师点击按钮之后,可以弹层。
2)弹层后,会自动展示当前已有的分数,可以对其修改。
3)修改的分数,会进行是否在0~100分之间的判断,不在有效范围内会报错。
1、编写弹层JS
与上一篇一样,需要将录入的内容,通过.post函数返回到后端业务逻辑处理。
最大的区别,是onshow处,使用
edit_score_js(cscore,sno,cno) { d = dialog({ width: , title: , quickClose: , content: + + + + + + + + + , ok: () { ($().val() <|| $().val() >){ alert() }{ $.post(,{ :$().val(), :sno, :cno, },(res) { (res.result){ alert(); } },) window.location.reload(); } }, cancelValue: , cancel: () { console.log() }, onshow: () { $().val(cscore) } }); d.show(); }
获取了页面里面的成绩,然后在弹层的content里面展示。
2、编写后端业务逻辑
(==) (request): username = request.session.get() data = teacher.objects.filter(=username).values() data render_to_response(()) (request): = request.session.get() cno = request.POST.get() sno = request.POST.get() scored = request.POST.get() score.objects.filter(=cno=sno).update(=scored) JsonResponse({:})
3、前端内容与绑定按钮
CSS与JS引用略,然后将按钮onclick绑定函数。
成绩录入课程号课程名学生姓名成绩编辑{% for i in data %} {{ i.course__cno }}{{ i.course__cname }}{{ i.course__score__sno__sname }}{{ i.course__score__cscore }}{% endfor %}
最终效果:点击修改按钮弹层,并且弹层内会显示当前分数。
输入超过0~100的分数,会报错提示
输入0~100以内分数,修改成功。