毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏)
毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总
感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。
技术栈:
Python语言、MySQL数据库、Django框架、bootstrap框架+css+js+HTML
本项目实现学生信息、就业信息、岗位信息三方面的管理功能,其中学生信息作为系统基础信息一部分,其中包含学生基本信息、教育经历、项目经历等内容,这些信息是企业所关注的基本内容;就业信息功能中不仅仅需要记录下学生的就业情况,同时需要实现就业的统计信息,这样可以方便高校了解学生就业的情况;岗位信息功能中需要提供企业信息、岗位信息管理功能,将经学校筛选的企业和岗位提供给学生进行选择,避免学生选择到存在问题的企业,降低学生就业风险,
(1)系统首页
(2)学院信息管理
(3)企业信息管理
(4)学生信息管理
(5)学生项目经历管理
(7)注册登录界面
(8)后台数据管理
本项目实现学生信息、就业信息、岗位信息三方面的管理功能,其中学生信息作为系统基础信息一部分,其中包含学生基本信息、教育经历、项目经历等内容,这些信息是企业所关注的基本内容;就业信息功能中不仅仅需要记录下学生的就业情况,同时需要实现就业的统计信息,这样可以方便高校了解学生就业的情况;岗位信息功能中需要提供企业信息、岗位信息管理功能,将经学校筛选的企业和岗位提供给学生进行选择,避免学生选择到存在问题的企业,降低学生就业风险,项目功能架构图如下所示:
import json
import time
from django.core.paginator import Paginator
from django.db import transaction
from django.db.models import Q
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render
from django.views import View
from app import models
'''
基础处理类,其他处理继承这个类
'''
class BaseView(View):
'''
检查指定的参数是否存在
存在返回 True
不存在返回 False
'''
def isExit(param):
if (param == None) or (param == ''):
return False
else:
return True
'''
系统请求处理
'''
class SysView(BaseView):
def get(self, request, module, *args, **kwargs):
if module == 'login':
return render(request, 'login.html')
elif module == 'exit':
del request.session["user"]
del request.session["type"]
return HttpResponseRedirect('/jobs/login')
if module == 'info':
return SysView.getSessionInfo(request)
elif module == 'show':
return render(request, 'index.html')
elif module == 'sysNum':
return SysView.getSysNums(request)
def post(self, request, module, *args, **kwargs):
if module == 'login':
return SysView.login(request)
if module == 'info':
return SysView.updSessionInfo(request)
if module == 'pwd':
return SysView.updSessionPwd(request)
def login(request):
userName = request.POST.get('userName')
passWord = request.POST.get('passWord')
user = models.Users.objects.filter(userName=userName)
if (user.exists()):
user = user.first()
if user.passWord == passWord:
request.session["user"] = user.id
request.session["type"] = user.type
return SysView.success()
else:
return SysView.warn('用户密码输入错误')
else:
return SysView.warn('用户名输入错误')
def getSessionInfo(request):
user = request.session.get('user')
data = models.Users.objects.filter(id=user)
resl = {}
for item in data:
resl = {
'id': item.id,
'userName': item.userName,
'passWord': item.passWord,
'gender': item.gender,
'name': item.name,
'age': item.age,
'phone': item.phone,
'type': item.type,
}
return SysView.successData(resl)
def getSysNums(request):
resl = {
'companiesTotal' : models.Companies.objects.all().count(),
'jobTotal' : models.Jobs.objects.all().count(),
'inStuTotal' : models.Students.objects.filter(status=0).count(),
'outStuTotal' : models.Students.objects.filter(status=1).count()
}
return BaseView.successData(resl)
def updSessionInfo(request):
user = request.session.get('user')
models.Users.objects.filter(id=user).update(
userName=request.POST.get('userName'),
name=request.POST.get('name'),
age=request.POST.get('age'),
gender=request.POST.get('gender'),
phone=request.POST.get('phone'),
)
return SysView.success()
def updSessionPwd(request):
user = request.session.get('user')
models.Users.objects.filter(id=user).update(
passWord=request.POST.get('password'),
)
return SysView.success()
'''
学院信息管理
'''
class CollegesView(BaseView):
def get(self, request, module, *args, **kwargs):
if module == 'show':
return render(request, 'colleges.html')
elif module == 'info':
return self.getInfo(request)
elif module == 'page':
return self.getPageInfo(request)
else:
return self.error()
def post(self, request, module, *args, **kwargs):
if module == 'add':
return self.addInfo(request)
elif module == 'upd':
return self.updInfo(request)
elif module == 'del':
return self.delInfo(request)
else:
return self.error()
def getInfo(self, request):
data = models.Colleges.objects.filter(id=request.GET.get('id')).first()
resl = {
'id': data.id,
'name': data.name,
'createTime': data.createTime
}
return BaseView.successData(resl)
def getPageInfo(self, request):
pageIndex = request.GET.get('pageIndex', 1)
pageSize = request.GET.get('pageSize', 10)
name = request.GET.get('name')
qruery = Q();
if BaseView.isExit(name):
qruery = qruery & Q(name__contains=name)
data = models.Colleges.objects.filter(qruery)
paginator = Paginator(data, pageSize)
resl = []
for item in list(paginator.page(pageIndex)):
temp = {
'id': item.id,
'name': item.name,
'createTime': item.createTime
}
resl.append(temp)
pageData = BaseView.parasePage(pageIndex, pageSize,
paginator.page(pageIndex).paginator.num_pages,
paginator.count, resl)
return BaseView.successData(pageData)
def addInfo(self,request):
models.Colleges.objects.create(name=request.POST.get('name'),
createTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
)
return BaseView.success()
def updInfo(self, request):
models.Colleges.objects.filter(id=request.POST.get('id')) \
.update(
name=request.POST.get('name')
)
return BaseView.success()
def delInfo(self, request):
if models.Students.objects.filter(college__id=request.POST.get('id')).exists():
return BaseView.warn('存在关联内容无法删除')
else:
models.Colleges.objects.filter(id=request.POST.get('id')).delete()
return BaseView.success()
'''
专业信息管理
'''
class MajorsView(BaseView):
def get(self, request, module, *args, **kwargs):
if module == 'show':
return render(request, 'majors.html')
elif module == 'info':
return self.getInfo(request)
elif module == 'page':
return self.getPageInfo(request)
else:
return self.error()
def post(self, request, module, *args, **kwargs):
if module == 'add':
return self.addInfo(request)
elif module == 'upd':
return self.updInfo(request)
elif module == 'del':
return self.delInfo(request)
else:
return self.error()
def getInfo(self, request):
data = models.Majors.objects.filter(id=request.GET.get('id')).first()
resl = {
'id': data.id,
'name': data.name,
'createTime': data.createTime,
}
return BaseView.successData(resl)
def getPageInfo(self, request):
pageIndex = request.GET.get('pageIndex', 1)
pageSize = request.GET.get('pageSize', 10)
name = request.GET.get('name')
qruery = Q();
if BaseView.isExit(name):
qruery = qruery & Q(name__contains=name)
data = models.Majors.objects.filter(qruery)
paginator = Paginator(data, pageSize)
resl = []
for item in list(paginator.page(pageIndex)):
temp = {
'id': item.id,
'name': item.name,
'createTime': item.createTime
}
resl.append(temp)
pageData = BaseView.parasePage(pageIndex, pageSize,
paginator.page(pageIndex).paginator.num_pages,
paginator.count, resl)
return BaseView.successData(pageData)
def addInfo(self, request):
models.Majors.objects.create(name=request.POST.get('name'),
createTime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
)
return BaseView.success()
def updInfo(self, request):
models.Majors.objects.filter(id=request.POST.get('id')) \
.update(
name=request.POST.get('name')
)
return BaseView.success()
def delInfo(self, request):
if models.Students.objects.filter(major__id=request.POST.get('id')).exists():
return BaseView.warn('存在关联内容无法删除')
else:
models.Majors.objects.filter(id=request.POST.get('id')).delete()
return BaseView.success()
'''
企业信息管理
'''
class CompaniesView(BaseView):
def get(self, request, module, *args, **kwargs):
if module == 'show':
return render(request, 'companies.html')
elif module == 'info':
return self.getInfo(request)
elif module == 'page':
return self.getPageInfo(request)
else:
return self.error()
def post(self, request, module, *args, **kwargs):
if module == 'add':
return self.addInfo(request)
elif module == 'upd':
return self.updInfo(request)
elif module == 'del':
return self.delInfo(request)
else:
return self.error()
def getInfo(self, request):
data = models.Companies.objects.filter(id=request.GET.get('id')).first()
resl = {
'id': data.id,
'name': data.name,
'phone': data.phone,
'address': data.address,
}
return BaseView.successData(resl)
def getPageInfo(self, request):
pageIndex = request.GET.get('pageIndex', 1)
pageSize = request.GET.get('pageSize', 10)
name = request.GET.get('name')
qruery = Q();
if BaseView.isExit(name):
qruery = qruery & Q(name__contains=name)
data = models.Companies.objects.filter(qruery)
paginator = Paginator(data, pageSize)
resl = []
for item in list(paginator.page(pageIndex)):
temp = {
'id': item.id,
'name': item.name,
'phone': item.phone,
'address': item.address,
}
resl.append(temp)
pageData = BaseView.parasePage(pageIndex, pageSize,
paginator.page(pageIndex).paginator.num_pages,
paginator.count, resl)
return BaseView.successData(pageData)
def addInfo(self, request):
models.Companies.objects.create(id=int(time.time()),
name=request.POST.get('name'),
phone=request.POST.get('phone'),
address=request.POST.get('address')
)
return BaseView.success()
def updInfo(self, request):
models.Companies.objects.filter(id=request.POST.get('id')) \
.update(
name=request.POST.get('name'),
phone=request.POST.get('phone'),
address=request.POST.get('address')
)
return BaseView.success()
def delInfo(self, request):
if models.Jobs.objects.filter(company__id=request.POST.get('id')).exists():
return BaseView.warn('存在关联内容无法删除')
else:
models.Companies.objects.filter(id=request.POST.get('id')).delete()
return BaseView.success()
'''
岗位信息管理
'''
class JobsView(BaseView):
def get(self, request, module, *args, **kwargs):
if module == 'show':
companies = models.Companies.objects.all().values()
return render(request, 'jobs.html', {'companies': list(companies)})
elif module == 'info':
return self.getInfo(request)
elif module == 'page':
return self.getPageInfo(request)
else:
return self.error()
def post(self, request, module, *args, **kwargs):
if module == 'add':
return self.addInfo(request)
elif module == 'upd':
return self.updInfo(request)
elif module == 'del':
return self.delInfo(request)
else:
return self.error()
def getInfo(self, request):
data = models.Jobs.objects.filter(id=request.GET.get('id')).first()
resl = {
'id': data.id,
'name': data.name,
'duty': data.duty,
'ask': data.ask,
'companyId': data.company.id,
}
return BaseView.successData(resl)
def getPageInfo(self, request):
pageIndex = request.GET.get('pageIndex', 1)
pageSize = request.GET.get('pageSize', 10)
name = request.GET.get('name')
companyId = request.GET.get('companyId')
qruery = Q();
if BaseView.isExit(name):
qruery = qruery & Q(name__contains=name)
if BaseView.isExit(companyId):
qruery = qruery & Q(company__id=companyId)
data = models.Jobs.objects.filter(qruery)
paginator = Paginator(data, pageSize)
resl = []
for item in list(paginator.page(pageIndex)):
temp = {
'id': item.id,
'name': item.name,
'duty': item.duty,
'ask': item.ask,
'companyId': item.company.id,
'companyName': item.company.name
}
resl.append(temp)
pageData = BaseView.parasePage(pageIndex, pageSize,
paginator.page(pageIndex).paginator.num_pages,
paginator.count, resl)
return BaseView.successData(pageData)
def addInfo(self, request):
models.Jobs.objects.create(name=request.POST.get('name'),
duty=request.POST.get('duty'),
ask=request.POST.get('ask'),
company=models.Companies.objects.get(id=request.POST.get('companyId'))
)
return BaseView.success()
def updInfo(self, request):
models.Jobs.objects.filter(id=request.POST.get('id')) \
.update(
name=request.POST.get('name'),
duty=request.POST.get('duty'),
ask=request.POST.get('ask'),
company=models.Companies.objects.get(id=request.POST.get('companyId'))
)
return BaseView.success()
def delInfo(self, request):
if models.SendLogs.objects.filter(job__id=request.POST.get('id')).exists():
return BaseView.warn('存在关联内容无法删除')
else:
models.Jobs.objects.filter(id=request.POST.get('id')).delete()
return BaseView.success()
def getPageInfo(self, request):
type = request.session.get('type')
user = request.session.get('user')
pageIndex = request.GET.get('pageIndex', 1)
pageSize = request.GET.get('pageSize', 10)
jobName = request.GET.get('jobName')
studentName = request.GET.get('studentName')
qruery = Q();
if type == 2:
student = models.Students.objects.filter(user__id=user).first()
qruery = qruery & Q(student__id=student.id)
if BaseView.isExit(jobName):
qruery = qruery & Q(job__name__contains=jobName)
if BaseView.isExit(studentName):
qruery = qruery & Q(student__user__name__contains=studentName)
data = models.SendLogs.objects.filter(qruery).order_by("-snedTime")
paginator = Paginator(data, pageSize)
resl = []
for item in list(paginator.page(pageIndex)):
temp = {
'id': item.id,
'snedTime': item.snedTime,
'status': item.status,
'jobId': item.job.id,
'jobName': item.job.name,
'jobDuty': item.job.duty,
'companyName': item.job.company.name,
'studentId': item.student.id,
'studentName': item.student.user.name,
}
resl.append(temp)
pageData = BaseView.parasePage(pageIndex, pageSize,
paginator.page(pageIndex).paginator.num_pages,
paginator.count, resl)
return BaseView.successData(pageData)
def addInfo(self, request):
user = request.session.get('user')
jobId = request.POST.get('jobId')
student = models.Students.objects.filter(user__id=user).first()
qruery = Q();
qruery = qruery & Q(job__id=jobId)
qruery = qruery & Q(student__id=student.id)
if ((models.EducationLogs.objects.filter(student__id=student.id).exists()) &
(models.ProjectLogs.objects.filter(student__id=student.id).exists())):
if models.SendLogs.objects.filter(qruery).exists():
return BaseView.warn('已投递,请勿重复')
else:
models.SendLogs.objects.create(status=request.POST.get('status'),
snedTime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
student=student,
job=models.Jobs.objects.filter(id=jobId).first()
)
return BaseView.success()
else:
return BaseView.warn('完善个人项目和教育经历后才可投递简历')
def updInfo(self, request):
status = request.POST.get('status')
if int(status) == 1:
sendLog = models.SendLogs.objects.filter(id=request.POST.get('id')).first()
student = models.Students.objects.filter(id=sendLog.student.id).first()
if student.status == 0:
models.SendLogs.objects.filter(id=request.POST.get('id')).update(
status=request.POST.get('status'),
)
models.Students.objects.filter(id=sendLog.student.id) \
.update(
status=1,
)
return BaseView.success()
else:
return BaseView.warn('学生已被录取')
else:
models.SendLogs.objects.filter(id=request.POST.get('id')) \
.update(
status=request.POST.get('status'),
)
return BaseView.success()
def delInfo(self, request):
models.SendLogs.objects.filter(id=request.POST.get('id')).delete()
return BaseView.success()
由于篇幅限制,获取完整文章或源码、代做项目的,查看我的【用户名】、【专栏名称】、【顶部选题链接】就可以找到我啦
感兴趣的可以先收藏起来,点赞、关注不迷路,下方查看获取联系方式