Python+Django的毕业设计-基于Aprior算法的成绩分析系统项目实战(附源码+论文)
·
大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。
精彩专栏推荐👇🏻👇🏻👇🏻
开发环境
- 开发语言:Python
- 框架:django
- Python版本:python3.7.7
- 数据库:mysql 5.7
- 数据库工具:Navicat11
- 开发软件:PyCharm
- 浏览器:谷歌浏览器
论文目录
【如需全文请按文末获取联系】

一、项目简介
该系统基于Python语言开发的优势,搭配Django框架的快速开发特点,实现了成绩分析系统的快速搭建和部署。通过BS架构的模式,保证了系统可以跨平台运行,用户无需安装额外的软件,方便使用和维护。借助MySQL数据库的稳定性和高效性,实现了对学生成绩数据的存储与管理,保障系统运行的稳定性和数据的安全性。同时,结合数据挖掘技术,使用Apriori算法进行关联规则挖掘,帮助用户深入了解学生成绩背后的数据关联关系。
二、系统设计
2.1软件功能模块设计
详细的系统总体设计图如下图4-1所示。
2.2数据库设计
本系统采用MySQL数据库作为数据存储。并根据相应的实体设计以下的E-R图:


三、系统项目部分截图
3.1用户登录
该系统的用户登录功能包括管理员、教师和学生三类用户的身份验证,用户需提供正确的用户名和密码进行登录,系统根据用户类型跳转到相应权限和功能页面,保障数据安全性和用户信息私密性。如上图4-6所示。
3.2我的成绩
学生登录系统后查看个人的成绩信息,按照课程分类展示,并显示相关详细信息(如成绩分数、学分、考核方式等),帮助学生了解自己在各门课程中的学习表现和成绩情况,为学习计划和进步提供参考。如上图4-7所示。
3.3学生成绩管理
学生成绩管理功能允许教师录入学生成绩或进行批量导入操作,包括学号、姓名、班级、课程、成绩等信息,并确保数据的准确性和完整性;同时,系统只允许该课程的负责老师进行成绩录入,为教学评估和学生成绩分析提供关键数据支持。如上图4-8所示。
四、部分核心代码
import time
from django.contrib.auth import authenticate, login, logout
from django.shortcuts import render
from .models import *
from django.http import JsonResponse, HttpResponseRedirect
from django.core.paginator import Paginator
from utils.common import login_request
from utils import common
def verif_has_username(id, name):
# 判断是否用重复的用户名
user = User.objects.exclude(id=id).filter(username=name)
return True if len(user) > 0 else False
def register(request):
"""
注册账号
:return:
"""
username = request.POST.get('username')
number = request.POST.get('number')
sign = verif_has_username(None, username)
password = request.POST.get('password')
age = request.POST.get('age')
sex = request.POST.get('sex', '男')
class_name = request.POST.get('class_name')
print(class_name, age)
if sign:
return JsonResponse({"statusCode": '500', "msg": "用户名重复!"})
response_data = {
"statusCode": '200',
"msg": "用户" + request.POST["username"] + "新增成功!",
}
if password == "" or username == "":
response_data["statusCode"] = '403'
response_data["msg"] = "用户名或密码为空,注册失败!"
# 新增用户
try:
Student.objects.create(
username=username,
password=password,
age=age,
sex=sex,
number=number,
class_name_id=class_name
)
common.create_log(request, '新增', '创建用户', username, 1)
except Exception as e:
print(e)
common.create_log(request, '新增', '创建用户失败', '', 0)
response_data["statusCode"] = '500'
response_data["msg"] = "用户新增失败"
return JsonResponse(response_data)
@login_request
def password(request):
return render(request, 'modify_password.html', locals())
def get_user(request):
"""
获取用户列表信息 | 模糊查询
:param request:
:return:
"""
page = request.GET.get("page", '')
keyword = request.GET.get("name", '')
limit = request.GET.get("limit", '')
response_data = {}
response_data['code'] = 0
response_data['msg'] = ''
data = []
if keyword is None:
results_obj = Student.objects.all()
else:
results_obj = Student.objects.filter(username__contains=keyword).all()
paginator = Paginator(results_obj, limit)
results = paginator.page(page)
if results:
for result in results:
record = {
"id": result.id,
"name": result.username,
"password": result.password,
"age": result.age,
"sex": result.sex,
'class_name':result.class_name.name,
'create_time': result.create_time.strftime('%Y-%m-%d %H:%m:%S'),
"number": result.number,
}
data.append(record)
response_data['count'] = len(results_obj)
response_data['data'] = data
return JsonResponse(response_data)
@login_request
def user(request):
"""
跳转用户页面
"""
class_names = ClassName.objects.all()
return render(request, 'user.html', locals())
def login_check(request):
"""
登录校验
"""
response_data = {}
username = request.POST.get('username')
password = request.POST.get('password')
user_obj = authenticate(username=username, password=password)
if user_obj:
# 将用户名存入session中
response_data['msg'] = '登录成功'
response_data['statusCode'] = '200'
common.create_log(request, '登录', '登录系统', '', 1)
login(request, user_obj)
return JsonResponse(response_data, status=201)
else:
common.create_log(request, '登录', '登录系统', username, 0)
return JsonResponse({'msg': '用户名或者密码不正确', 'statusCode': '500'}, status=401)
def edit_user(request):
"""
修改用户
"""
response_data = {}
user_id = request.POST.get('id')
username = request.POST.get('username', '')
phone = request.POST.get('phone', '')
email = request.POST.get('email', '')
description = request.POST.get('desc')
User.objects.filter(id=user_id).update(
username=username,
email=email,
description=description,
phone=phone)
response_data['msg'] = '编辑成功!'
response_data['error'] = 0
common.create_log(request, '修改', '修改用户', username, 1)
return JsonResponse(response_data, status=201)
def del_user(request):
"""
删除用户
"""
user_id = request.POST.get('id')
result = User.objects.filter(id=user_id).first()
try:
if not result:
response_data = {'error': '删除失败!', 'message': '找不到id为%s' % user_id}
return JsonResponse(response_data, status=403)
common.create_log(request, '删除', '删除用户', result.username, 1)
result.delete()
response_data = {'message': '删除成功!'}
return JsonResponse(response_data, status=201)
except Exception as e:
common.create_log(request, '删除', '删除用户', result.username, 0)
response_data = {'message': '删除失败!'}
return JsonResponse(response_data, status=403)
def change_password(request):
"""
修改密码
"""
current_user = User.objects.filter(username=request.session["username"]).first()
if current_user.password == request.POST.get('password'):
# 修改的密码与原密码重复不予修改
return JsonResponse({"msg": "修改密码与原密码重复"}), 406
else:
# 不重复,予以修改
current_user.set_password(request.POST.get('password'))
current_user.save()
# 清除session回到login界面
logout(request)
return JsonResponse({"msg": "success"})
def login_check_teacher(request):
"""
登录校验
"""
response_data = {}
username = request.POST.get('username')
password = request.POST.get('password')
user_obj = Teacher.objects.filter(username=username, password=password).first()
if user_obj:
# 将用户名存入session中
response_data['msg'] = '登录成功'
response_data['statusCode'] = '200'
common.create_log(request, '登录', '登录系统', '', 1)
request.session['username'] = username
request.session['role'] = '教师'
return JsonResponse(response_data, status=201)
else:
common.create_log(request, '登录', '登录系统', username, 0)
return JsonResponse({'msg': '用户名或者密码不正确', 'statusCode': '500'}, status=401)
def login_check_student(request):
response_data = {}
number = request.POST.get('number')
password = request.POST.get('password')
user_obj = Student.objects.filter(number=number, password=password).first()
if user_obj:
# 将用户名存入session中
response_data['msg'] = '登录成功'
response_data['statusCode'] = '200'
common.create_log(request, '登录', '登录系统', '', 1)
request.session['username'] = user_obj.username
request.session['role'] = '学生'
return JsonResponse(response_data, status=201)
else:
common.create_log(request, '登录', '登录系统', user_obj.username, 0)
return JsonResponse({'msg': '用户名或者密码不正确', 'statusCode': '500'}, status=401)
获取源码或论文
如需对应的论文或源码,以及其他定制需求,也可以下方微信联系我。
更多推荐

所有评论(0)