Python基于Django的毕业设计论文选题阶段性资料管理系统

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 为了解决高校毕业论文原有管理方式效率低下、教师与学生之间的交流繁琐、毕业设计和论文创作过程繁杂等问题,采用基于vue和B/S模式简化了管理员、教师和学生之间的交流,细分毕业论文写作进程的部分:学生通过课题选择,在教师的审核下与教师建立关系,教师分配每一个阶段的任务,学生每进行一个阶段提交一份中期报告等待老师反馈,最后学生提交定稿论文,管理员分配并通知学生教师参加答辩。本系统界面友好,功能满足预期要求,各用户的工作效率较原有管理方式有了很大的提高

为了解决高校毕业论文原有管理方式效率低下、教师与学生之间的交流繁琐、毕业设计和论文创作过程繁杂等问题,采用基于vue和B/S模式简化了管理员、教师和学生之间的交流,细分毕业论文写作进程的部分:学生通过课题选择,在教师的审核下与教师建立关系,教师分配每一个阶段的任务,学生每进行一个阶段提交一份中期报告等待老师反馈,最后学生提交定稿论文,管理员分配并通知学生教师参加答辩。本系统界面友好,功能满足预期要求,各用户的工作效率较原有管理方式有了很大的提高


环境需要

1.运行环境:python3.7/python3.8。

2.IDE环境:pycharm+mysql5.7;

3.数据库工具:Navicat11

4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;

5.数据库:MySql 5.7版本;

技术栈

后端:python+django

前端:vue+CSS+JavaScript+jQuery+elementui


毕业设计流程繁琐,指导老师与学生之间沟通不够灵活,各种毕业设计文档管理混乱。本毕业设计系统采用了现代的技术方式,提升了质量效率,降低了沟通成本和时间成本。

本系统经过实际需求分析,基于B/S架构,采用Django框架、MySQL数据库、vue前端框架, 用户权限管理子系统和注册、登录、反馈等各模块,其设计均按照简单灵活,安全稳定的原则来实现。




# coding:utf-8

__author__ = "ila"


from django.http import JsonResponse


from .users_model import users

from util.codes import *

from util.auth import Auth

import util.message as mes



def users_login(request):

   if request.method in ["POST", "GET"]:

       msg = {'code': normal_code, "msg": mes.normal_code}

       req_dict = request.session.get("req_dict")

       if req_dict.get('role')!=None:

           del req_dict['role']

       datas = users.getbyparams(users, users, req_dict)

       if not datas:

           msg['code'] = password_error_code

           msg['msg'] = mes.password_error_code

           return JsonResponse(msg)


       req_dict['id'] = datas[0].get('id')

       return Auth.authenticate(Auth, users, req_dict)



def users_register(request):

   if request.method in ["POST", "GET"]:

       msg = {'code': normal_code, "msg": mes.normal_code}

       req_dict = request.session.get("req_dict")


       error = users.createbyreq(users, users, req_dict)

       if error != None:

           msg['code'] = crud_error_code

           msg['msg'] = error

       return JsonResponse(msg)



def users_session(request):

   '''

   '''

   if request.method in ["POST", "GET"]:

       msg = {"code": normal_code,"msg":mes.normal_code, "data": {}}


       req_dict = {"id": request.session.get('params').get("id")}

       msg['data'] = users.getbyparams(users, users, req_dict)[0]


       return JsonResponse(msg)



def users_logout(request):

   if request.method in ["POST", "GET"]:

       msg = {

           "msg": "退出成功",

           "code": 0

       }


       return JsonResponse(msg)



def users_page(request):

   '''

   '''

   if request.method in ["POST", "GET"]:

       msg = {"code": normal_code, "msg": mes.normal_code,

              "data": {"currPage": 1, "totalPage": 1, "total": 1, "pageSize": 10, "list": []}}

       req_dict = request.session.get("req_dict")

       tablename = request.session.get("tablename")

       try:

           __hasMessage__ = users.__hasMessage__

       except:

           __hasMessage__ = None

       if __hasMessage__ and __hasMessage__ != "否":


           if tablename != "users":

               req_dict["userid"] = request.session.get("params").get("id")

       if tablename == "users":

           msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \

           msg['data']['pageSize'] = users.page(users, users, req_dict)

       else:

           msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \

           msg['data']['pageSize'] = [],1,0,0,10


       return JsonResponse(msg)



def users_info(request, id_):

   '''

   '''

   if request.method in ["POST", "GET"]:

       msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}


       data = users.getbyid(users, users, int(id_))

       if len(data) > 0:

           msg['data'] = data[0]

       # 浏览点击次数

       try:

           __browseClick__ = users.__browseClick__

       except:

           __browseClick__ = None


       if __browseClick__ and "clicknum" in users.getallcolumn(users, users):

           click_dict = {"id": int(id_), "clicknum": str(int(data[0].get("clicknum", 0)) + 1)}

           ret = users.updatebyparams(users, users, click_dict)

           if ret != None:

               msg['code'] = crud_error_code

               msg['msg'] = ret

       return JsonResponse(msg)



def users_save(request):

   '''

   '''

   if request.method in ["POST", "GET"]:

       msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}

       req_dict = request.session.get("req_dict")

       error = users.createbyreq(users, users, req_dict)

       if error != None:

           msg['code'] = crud_error_code

           msg['msg'] = error

       return JsonResponse(msg)



def users_update(request):

   '''

   '''

   if request.method in ["POST", "GET"]:

       msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}

       req_dict = request.session.get("req_dict")

       if req_dict.get("mima") and req_dict.get("password"):

           if "mima" not in users.getallcolumn(users,users):

               del req_dict["mima"]

           if "password" not in users.getallcolumn(users,users):

               del req_dict["password"]

       try:

           del req_dict["clicknum"]

       except:

           pass

       error = users.updatebyparams(users, users, req_dict)

       if error != None:

           msg['code'] = crud_error_code

           msg['msg'] = error

       return JsonResponse(msg)



def users_delete(request):

   '''

   '''

   if request.method in ["POST", "GET"]:

       msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}

       req_dict = request.session.get("req_dict")


       error = users.deletes(users,

           users,

           req_dict.get("ids")

       )

       if error != None:

           msg['code'] = crud_error_code

           msg['msg'] = error

       return JsonResponse(msg)



1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162


采用python语言开发的一个基于web的毕业设计选题管理系统,一共有3个身份,超级管理员,老师和学生。管理员登录后可以管理专业信息,学院信息,教研室信息,设置系统开放时间,添加发布公告,添加维护学生信息,添加维护老师信息,其中学生和用户表一对一关系,老师和用户也是一对一关系,基于分组权限设置,学生用户属于students分组,老师用户属于teachers分组,每个分组拥有不同的权限,基于分组权限设计的思路;学生登录后可以查询导师,选择自己中意的老师,修改个人信息和密码;老师登录系统后确认选自己的学生,修改个人信息和密码。


项目介绍 在各学校的教学过程中,django过程管理系统是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的django过程管理系统的平台,这样可以有效地解决django过程管理系统混乱的局面。 本文首先介绍了django过程管理系统的发展背景与发展现状,然后遵循软件常规开发流程,首先针对系统选取适用的语言和开发平台,根据需求分析制定模块并设计数据库结构,再根据系统总体功能模块的设计绘制系统的功能模块图,流程图以及E-R图。然后,设计框架并根据设计的框架编写代码以实现系统的各个功能模块。最后,对初步完成的系统进行测试,主要是功能测试、单元测试和性能测试。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。


目录

1 绪论 1

1.1课题背景 1

1.2课题研究现状 1

1.3初步设计方法与实施方案 2

1.4本文研究内容 2

2 系统开发环境 4

2.1 使用工具简介 4

2.2 环境配置 4

2.3 B/S结构简介 4

2.4 MySQL数据库 5

2.5 框架介绍 5

3 系统分析 6

3.1系统可行性分析 6

3.1.1经济可行性 6

3.1.2技术可行性 6

3.1.3运行可行性 6

3.2系统现状分析 6

3.3功能需求分析 7

3.4系统设计规则与运行环境 8

3.5系统流程分析 8

3.5.1操作流程 8

3.5.2添加信息流程 9

3.5.3删除信息流程 10

4 系统设计 11

4.1系统设计主要功能 11

4.2数据库设计 11

4.2.1数据库设计规范 11

4.2.2 E/R图 11

4.2.3数据表 12

5 系统实现 25

5.1系统功能模块 25

5.2后台模块 27

5.2.1管理员功能模块 27

5.2.2用户功能模块 30

6 系统测试 33

6.1功能测试 33

6.2可用性测试 33

6.3性能测试 34

6.4测试结果分析 34

7结 论 35

参考文献 36

致 谢 37

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
机器学习/深度学习 传感器 存储
使用 Python 实现智能地震预警系统
使用 Python 实现智能地震预警系统
101 61
|
3天前
|
机器学习/深度学习 数据采集 算法框架/工具
使用Python实现智能生态系统监测与保护的深度学习模型
使用Python实现智能生态系统监测与保护的深度学习模型
19 4
|
3天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
12 1
|
14天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
16 4
|
15天前
|
机器学习/深度学习 API 计算机视觉
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
18 2
|
15天前
|
机器学习/深度学习 存储 算法
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
19 1
|
15天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【10月更文挑战第10天】本文比较了Python中三个最受欢迎的Web框架:Django、Flask和Pyramid。Django以功能全面、文档完善著称,适合快速开发;Flask轻量灵活,易于上手;Pyramid介于两者之间,兼顾灵活性和安全性。选择框架时需考虑项目需求和个人偏好。
25 1
|
18天前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
59 1
|
15天前
|
Python
Python实现系统基础信息
Python实现系统基础信息
27 0
|
15天前
|
机器学习/深度学习 缓存 数据可视化
基于Python_opencv的车牌识别系统
基于Python_opencv的车牌识别系统
20 0