python django教学质量评价系统,实现学生、教师、管理员不同角色管理

发布时间:2024年01月23日

教学质量评价是高校教育管理的重要组成部分,为了提高教学质量和教学效果,开发一个基于Django框架的教学质量评价系统是非常有必要的。该系统可以满足学生、教师和管理员不同角色的需求,提供便捷的评价功能和信息管理。

首先,对于学生而言,该系统为他们提供了方便的评价功能。学生可以登录系统后,查看自己所选课程的待评价列表,并进行相应的评价操作。评价内容包括针对教师的授课态度、教学方法、课程内容等方面的评价,并可以留下自己的建议和意见。通过这样的评价反馈,学生可以更好地参与到教学过程中,促进教学质量的提升。

其次,对于教师而言,该系统提供了评价结果的查看和分析功能。教师可以登录系统后,查看自己所教授课程的评价结果,并进行分析和反思。系统会根据学生的评价结果生成相应的统计图表和报告,帮助教师全面了解自己的教学表现和存在的问题,从而有针对性地改进教学方法和提高教学质量。

最后,对于管理员而言,该系统提供了全面的信息管理和数据统计功能。管理员可以登录系统后,管理学生、教师和课程等相关信息,并对评价结果进行汇总和分析。管理员可以根据评价结果生成各种报表和统计图表,为教学质量的监控和改进提供科学依据。同时,管理员也可以对系统进行设置和配置,确保系统的正常运行和安全性。

综上所述,基于Django框架的教学质量评价系统为学生、教师和管理员提供了不同的功能和服务,实现了教学质量的全方位评估和管理。通过该系统,学生能够积极参与教学评价,教师能够及时了解自己的教学效果,管理员能够全面管理和监控教学质量。这样的教学质量评价系统将有助于提高教育质量,促进教学改革,推动高校教育的持续发展。

主要代码:

import hashlib
from django.shortcuts import render, HttpResponse, HttpResponseRedirect
from login.models import *


def index(request):
    if request.method == "GET":
        xuehao = request.session['xuehao']
        book = KeCheng.objects.filter(xuehao=xuehao, is_active=True, ok='no').order_by('id')
        book1 = KeCheng.objects.filter(xuehao=xuehao, is_active=True, ok='ok')
        return render(request, 'students/index.html', locals())


def update_pingjia(request, kecheng_id):
    xuehao = request.session['xuehao']
    try:
        kecheng = KeCheng.objects.filter(id=str(kecheng_id), is_active=True).values('id', 'kecheng', 'teacher_id__name',
                                                                                    'teacher_id__phone')
        tiku = TiKu_1.objects.filter(is_active=True).order_by('id')
        book = KeCheng.objects.filter(xuehao=xuehao, is_active=True, ok='no').order_by('id')
        book1 = KeCheng.objects.filter(xuehao=xuehao, is_active=True, ok='ok')
    except Exception as e:
        print('--update  book error is %s' % (e))
        return HttpResponse('--The kecheng does not exist!')

    if request.method == 'GET':
        return render(request, 'students/pingjia_id.html', locals())
    elif request.method == 'POST':
        tiku = TiKu_1.objects.filter(is_active=True)
        stu_liuyan = request.POST['liuyan']
        s_a = 1
        sum = 0
        b = None
        for i in tiku:
            stu_daan = request.POST[str(i.id)]
            sum += round(float(stu_daan))

            try:
                a = PingJia.objects.filter(id=kecheng_id)
            except Exception as e:
                print(e)
            try:
                b = PingJia.objects.get(id=kecheng_id)
            except Exception as e:
                print(e)

            if a:
                if s_a == 2:
                    b.s_daan2 = stu_daan
                elif s_a == 3:
                    b.s_daan3 = stu_daan
                elif s_a == 4:
                    b.s_daan4 = stu_daan
                elif s_a == 5:
                    b.s_daan5 = stu_daan
                elif s_a == 6:
                    b.s_daan6 = stu_daan
                elif s_a == 7:
                    b.s_daan7 = stu_daan
                elif s_a == 8:
                    b.s_daan8 = stu_daan
                elif s_a == 9:
                    b.s_daan9 = stu_daan
                elif s_a == 10:
                    b.s_daan10 = stu_daan
                s_a += 1
                b.save()
            else:
                try:
                    b = PingJia.objects.create(id=kecheng_id, s_daan1=stu_daan,
                                               kecheng=KeCheng.objects.get(id=kecheng_id), s_liuyan=stu_liuyan,
                                               is_active=True)
                except Exception as e:
                    print('Failed to add to PingJia: %s' % e)

                try:
                    c = KeCheng.objects.get(id=str(kecheng_id))
                except Exception as e:
                    print(e)
                c.ok = 'ok'
                c.save()
                s_a += 1

        if s_a > 1:
            avg = sum / (s_a - 1)
        else:
            avg = 0

        if b is not None:
            b.s_avg = float('%.2f' % avg)
            b.save()

        return HttpResponseRedirect('/students/')


def ok_pingjia(request):
    xuehao = request.session['xuehao']
    tiku = TiKu_1.objects.filter(is_active=True)
    book = KeCheng.objects.filter(xuehao=xuehao, is_active=True, ok='no')
    book1 = KeCheng.objects.filter(xuehao=xuehao, is_active=True, ok='ok').order_by('id')
    return render(request, 'students/ok_pingjia.html', locals())


def cat_pingjia(request, kecheng_id):
    xuehao = request.session['xuehao']
    book = KeCheng.objects.filter(xuehao=xuehao, is_active=True, ok='no')
    book1 = KeCheng.objects.filter(xuehao=xuehao, is_active=True, ok='ok').order_by('id')
    kecheng = KeCheng.objects.filter(id=str(kecheng_id), is_active=True).values('id', 'kecheng', 'teacher_id__name',
                                                                                'teacher_id__phone')
    tiku = TiKu_1.objects.filter(is_active=True)
    data_list = list()
    pj = PingJia.objects.get(id=kecheng_id, kecheng__xuehao=xuehao)
    s_a = 1
    return render(request, 'students/cat_pingjia.html', locals())


def update_password(request):
    if request.method == 'GET':
        return render(request, 'students/update_password.html')
    elif request.method == 'POST':
        xuehao = request.session['xuehao']
        pswd = request.POST['password']
        pswd_1 = request.POST['password_1']
        pswd_2 = request.POST['password_2']
        m = hashlib.md5()
        m.update(pswd.encode())
        password_m = m.hexdigest()
        if pswd_1 != pswd_2:
            msg = '密码不一致!'
            return render(request, "students/update_password.html", locals())
        try:
            s = Students.objects.filter(xuehao=xuehao, password=password_m)
        except Exception as e:
            return HttpResponse('students_update_pswd:', e)

        if s:
            m = hashlib.md5()
            m.update(pswd_1.encode())
            password_m = m.hexdigest()
            s.update(password=password_m)
            request.session['xuehao'] = xuehao
            msg = '修改密码成功!'
            return HttpResponseRedirect('/students/', locals())
        else:
            msg = '原密码错误!'
            return render(request, 'students/update_password.html', locals())

效果:

文章来源:https://blog.csdn.net/weixin_49081159/article/details/135771139
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。