使用Flask、Django、PHP和Node.js设计实现Python高校竞赛管理系统
cc
在新冠疫情下,高校竞赛管理系统主要是用python语言开发的。系统根据B/S架构设计,选用django/flask框架开发。Eclipse开发工具,形成的数据储存在MySQL数据库中。系统分成管理员控制模块和学生、老师模块。管理员可以管理学生信息、老师信息、竞赛类别、竞赛项目、学生报名、老师报名、学生打卡、老师打卡、学生成果、老师成果进行操作,学生可以查询竞赛项目、公告信息等和设定本人系统。本系统有良好的界面体验,功能基本齐全,让使用者体验度大大提升。
语言:Python
框架:django/flask
软件版本:python3.7.7
数据库:mysql
数据库工具:Navicat
前端框架:vue.js
通过比较两个不同因素的框架,可以看出Flask和Django不能被标记为单一功能中的最佳框架。当Django在快速发展的大型项目中看起来更好并且提供更多功能时,Flask似乎更容易上手。这两个框架对于开发Web应用程序都非常有用,应根据当前的需求和项目的规模来选择它们。
最新python的web框架django/flask都可以开发.基于B/S模式,前端技术:nodejs+vue+Elementui+html+css
,前后端分离就是将一个单体应用拆分成两个独立的应用:前端应用和后端应用,以JSON格式进行数据交互.充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护等特点目 录
摘要 I
Abstract II
第一章 绪论 1
1.1 研究背景 1
1.2 研究目的 1
1.3 系统的研究意义 2
第二章 系统分析 4
2.1需求分析 4
2.1.1 系统可行性分析 4
2.1.2 功能需求分析 5
2.1.3 非功能需求分析 8
2.2相关技术介绍 9
2.2.1 django/flask框架 9
2.2.2 python语言介绍 10
2.2.3 B/S架构 10
2.2.4 MySQL数据库介绍 10
第三章 系统设计 12
3.1 系统设计目标 12
3.2 系统结构图 12
3.3 系统数据库设计 14
3.3.1 数据库概念设计 15
3.3.2 数据库逻辑设计 17
第四章 系统实现 24
4.1 管理员功能模块 24
4.2 学生功能模块实现 25
4.3 老师功能模块实现 27
4.4 前台系统功能模块 29
第五章 系统测试 30
5.1 运行环境 31
5.2 测试过程 31
5.2.1 界面测试 32
5.2.2 功能测试 33
5.3 测试结果分析 34
5.4 测试小结 34
总 结 35
致 谢 35
参考文献 36
1 绪 论
本章主要介绍高校竞赛管理系统软件的研究背景和研究意义,明确了系统软件设计理念,得到了研究内容和具体内容。
1.1 研究背景
信息技术的集成化和信息网络化的不断发展,人类开始步入信息化时代,信息技术作为一种资源成为学校战略不可分割的一部分[1]。由于竞争形式不再局限于广义的成本、差异、和目标三种,因此对学校信息化程度的要求不断提高。庞大的数据处理和分析在整个竞争模式中起着至关重要的作用。
以往的高校竞赛管理,都是工作人员手工统计。这种方式不但时效性低,而且需要查找和变更的时候很不方便。随着科学的进步,技术的成熟,计算机信息化也日新月异的发展,社会也已经深刻的认识,计算机功能非常的强大,计算机已经进入了人类社会发展的各个领域,并且发挥着十分重要的作用。本系统利用网络沟通、计算机信息存储管理,有着与传统的方式所无法替代的优点。比如计算检索速度特别快、可靠性特别高、存储容量特别大、保密性特别好、可保存时间特别长、成本特别低等。在工作效率上,能够得到极大地提高,延伸至服务水平也会有好的收获,有了电脑,高校竞赛管理系统的各方面的管理更加科学和系统,更加规范和简便[2]。
1.2 研究目的
本系统研究的目的在于线上高校竞赛管理可以方便学生查看学生报名、学生打卡、学生成果等,是对高校竞赛管理及服务的双向发展,切合用户需求的系统。本系统实现竞赛项目、学生报名、老师报名、学生打卡、老师打卡、学生成果、老师成果以及为减少资源浪费,为用户提供一个安全、便捷的查询信息渠道[3]。同时系统体现透明、公正公开的原则,管理者的加入,使得双方合作与互相监督,同时网站随时更新最新信息。
1.3 系统的研究意义
最初的管理信息的系统是人机系统,采用C/S(Client/Server)模式,即客户端/服务器端模式的单一人机系统。在局域网的支撑下,面向一定的使用者,但事实存在不少缺点:交互性较差,信息信息反馈的不够及时;因为是面向整体的使用者所以想要升级的话难度系数较大;系统构建出来的重用性较差,使用的效率低,对于信息的只能进行有限的管理。从公元1980年到公元1989年,网络逐渐普及,通信技术也逐渐提高,B/S的模式逐渐取代了C/S占据了市场主流。在这种模式下,通信的基础不再是局域网而是广域网,此时用户群体不再是固定的而是灵活多变的,采用了各种各样的表现形式与使用者进行交互,将构建的独立性与重用性也加强了,与此同时,系统的升级变得容易,维护方面的成本也得到降低,但是因为用户存在着未知性,系统的安全控制能力还是有所欠缺。
现在还有许多人用纸质工具存储并管理信息,网络仅仅起到一般的辅助性作用。以我对人们常用软件的了解程度,大家仍然把传统的Office软件当成主要工具,高校竞赛管理系统相比Office软件来说会更全面更专业[4]。本系统通过标签分类等方式,使管理人员对各项功能信息实现高效的管理,可以极大的提高管理人员的工作效率。
2系统分析
2.1需求分析
需求分析做为手机软件整体规划环节和项目生命周期的关键一部分,应当是“实现什么东西”而不是“实现”[5]。根据开发者对调研分析关键点、作用、特性、稳定性的掌握,将用户的无形要求转换为有形的界定,以便确定系统的运行目标。
2.1.1 系统可行性分析
系统的可行性主要针对以下方面分析:
(1)经济可行性
经济发展的可行性分析要从开发商的经济发展能力和用户必须的成本费2个层面来剖析。为了更好地减少项目成本,系统软件应用Eclipse做为开源版本。数据库查询是开源MySQL数据库和配置好操作系统的电子计算机[6]。而电脑浏览器应用出色的IE、火狐和Google更全方位地展现CSS网页页面,进而推动系统升级维护保养,控制成本。如此看来,处于经济层面的考虑,进行开发没有阻碍。
(2)技术可行性
技术可行性研究通过是否,在于对目前技术和硬件设备的剖析。系统软件开发应用的计算机语种是python。python语言从问世到现在不断强化,已经十分完善。运用覆盖面广,合乎开发必须。应用MySQL数据库作为数据储存,十分具有安全性,对配备规定低。这是一个经常使用的数据库。后台采用django/flask框架,就可以进行开发设计,让网页页面看上去又漂亮又大方,还方便维护[7]。最终,开发环境是Eclipse,因为其中包含框架和函数等等,可以立即应用。因此在技术方面是可行的。
(3)操作可行性
本高校竞赛管理系统选用B/S构造,用户不用安装其他软件就可以轻轻松松掌握和娴熟应用。与此同时,因为系统是基于Web的,可以实现客户端的请求和服务器的端口组件,解决数据库文件的数据并回到结论。为了更好地组建和储存数据,数据库可以确保数据的一致性。一旦对数据开展操作,工作会越来越更简易,工作量也会降低。全部操作都由系统自身操纵。该系统大大减少了有关工作人员的工作量,也更便捷的让工作人员掌握具体操作全过程。既加速了工作效率,又下降了错误率。在操作上是可行的[8]。
2.1.2 功能需求分析
高校竞赛管理服务平台是以学校的状况为起点,综合网络空间开发设计要求。目的是将高校竞赛管理通过网络平台变换为在网上操作,完成高校竞赛管理的方便快捷、安全性、规范做了保障,目标明确[9]。
这一系统可以分成三种类别的用例实体模型,分别是学生、老师和管理员。这三个角色的作用将在下面详解和叙述。
(1)学生
主要使用者为学生。具备有:系统首页、个人中心、学生报名管理、学生打卡管理、学生成果管理功能。学生用例图如图2-1所示。
3.3 系统数据库设计
为了更好地便捷日后的信息维护保养和信息升级,提升系统软件数据信息浏览的高效率。设计方案一个健全的数据库是必需的。数据库设计方案系统对有较大的影响,好的设计可以做到缩短数据操作的所需时间,带来更大的流量,同时在进行开发时,数据库设计的越优秀,越合理,开发所需要编写的代码就越简洁,越能使数据的储存效率提高,让数据的一致性和完整性可以得到保证。
3.3.1 数据库概念设计
概念模型用于对信息世界进行建模,单独于指定的数据库管理系统。便于将现实世界中的实际事情抽象地构成数据库管理系统适用的数据库模型。大家趋向于先把现实世界抽象化成信息世界,再把信息世界变为机器世界[12]。换句话说,最先将现实世界中的目标抽象化为自主于特殊计算机软件和特殊数据库管理系统的信息构造,而是一个数据模型,随后在电子计算机上把该实体模型变换为数据库管理系统适用的数据库系统。实际上,数据模型是以现实世界到机器世界的正中间层级。
信息世界的基本要素包含实体和关联。
(1)实体(entity)
实体(entity) 客观存在并可相互区别的事物称为实体[13]。实体可以是实际的人、事或物,还可以是抽象化的概念或联络。
(2)联系(relationship)
我们可以把现实世界中相应的事情当作有关的实体,随后叙述现实世界中的信息。实体内部结构的特性连接造成实体中间的连接。实体间的连接可以有三种:一对一(1: 1),一对多(1: n),多对多(m: n)。信息世界用概念模型来进行建模,所以信息世界中共有的概念可以由概念模型准确的方便的表达出来[14]。表达概念的方法不仅一种,E-R图是最经常使用的一种。现实世界的概念模型可以用E-R图来叙述,称之为实体-关系模型,通称E-R
实体模型。
根据系统分析,以下是对各个实体属性的具体图形说明。
5 系统测试
系统测试的好坏直接影响到软件的生存期,一个健全的测试流程可以确保系统的生命期。此章关键详细介绍实际操作条件和检测[15]。
5.1 运行环境
5.1.1软件平台
(1)所用开发工具:Eclipse+MySQL数据库;
(2)服务器系统:Windows 10操作系统;
(3)客户端系统:Windows 10 操作系统。
5.1.2 硬件平台
高校竞赛管理系统硬件环境需求并不是非常苛刻,服务器端和用户端都不需要太高的配置。目前主流的硬件配置足够满足运行条件。项目的体积不大,所需资源不多,推荐配置为,CPU达到1Ghz,内存达到2GB,磁盘空间达到500G,便可以流畅运行。
5.2 测试过程
5.2.1 界面测试
在开发期间对前台界面主要进行以下几方面的测试:
(1)网页页面的合理布局,及其背景色表明是不是恰当,感观是不是简约美观,是不是符合规定,实际操作是不是便捷;
(2)在不一样电脑浏览器上的展现是不是正常的、美观;
(3)放缩、挪动、更新对话框时表明是不是正常的;
(4)网页页面中的连接部位方式是不是有利于用户搜索和了解。
系统前台经过以上几方面的测试,显示正确,界面简洁美观,未出现问题;用户可以简单上手,测试结果达到了预期效果。
5.2.2 功能测试
程序主要针对以下几点功能测试:
(1)登陆测试:测试输入不正确的手机号和登陆密码,手机号和密码为空,输入恰当的手机号和登陆密码时,是不是能正常的进到系统软件;
(2)注册测试:测试在输入不完善的注册信息内容和注册用户信息时,系统软件能不能得出提醒;用户注册取得成功后能不能取得成功注册;
(3)用户信息改动测试:账号登录后,测试私人信息改动是不是取得成功;
5.3 测试结果分析
功能测试结果如表5-1所示:
表5-1 功能测试表
模块名称 测试用例 预期结果 实际结果 是否通过
登录 账号:123
密码:123 提示:请填写字段 与预期结果相同 通过
登录 账号:18846037785
密码:123 提示:请输入字段 与预期结果相同 通过
登录 账号:18846037785
密码:qq713159 登录成功 与预期结果相同 通过
注册 输入已注册成功用户 提示:账号已被注册,请重新输入 与预期结果相同 通过
个人信息修改 昵称:cc
QQ号:1222222 修改成功 与预期结果相同 通过
5.4 测试小结
该系统已经过严苛检测。通过单元测试、子系统检测和系统测试,系统并没有发生致命错误。网页页面表明正常的,控制模块功能正常的,控制模块内部结构融洽恰当。高校竞赛管理系统恰当完成了预估功能,做到了预期目标。
总 结
系统选用python语言开发,后台应用django/flask框架,应用MySQL开展数据储存,功能控制模块的开发选用关键技术进行。对于高校竞赛管理平台分散化、由来广泛的特性,学生管理、老师管理、竞赛类别管理、竞赛项目管理、学生报名管理、老师报名管理、学生打卡管理、老师打卡管理、学生成果管理、老师成果管理、系统管理等功能进行设计和完成。用户做为平台的关键客户,申请注册一个账户就可以在平台上查询信息,简单化了繁琐与复杂的过程。
该系统具备一定的实用性,程序流程开发获得了较好的实际效果,但因为开发时长比较有限,开发周期时间短,系统也有很多的下一步工作要进行,程序流程中有很多相同编码,不有利于日后的维护保养和移殖,必须除掉重复编码;与此同时数据分析表关联系数较为高,耦合性高,很有可能会减少实际操作数据库查询时的运行效率,必须中后期提升。因为时长缘故,这一系统的功能还没有很全方位,编码也必须持续提升。根据之后的改善,期待可以融合到系统中来做大量的功能,拓宽高校竞赛管理系统的业务范围。
致 谢
在这毕业设计制作的最后的这段时光里,我的内心有太多的话语想借此来表达。从开始选题到现在自己设计的平台成型这期间的磨砺,巩固了我在大学期间所学到的知识,并且通过不断的查阅资料来获取解决问题的方法,增强了我实际动手能力且培养了我独立解决问题的能力。当然也会遇到那种即使翻阅资料也无法解决的问题,再通过与老师和同学之间的沟通后也顺利的解决了。通过这次毕业设计锻炼你给我明白了作为一个当代大学生,我们需要的不仅仅是简单的编写代码能力,而是要对整个平台的整体把控与设计能力。我会在将来的工作之余不断进行学习,来对自我进行填充,以更热情的心态来面对明天的各种机遇和挑战。为我最热爱的母校争光,为自己翻开辉煌的新篇章。
本系统是在我的指导老师xx老师悉心指导下立完成的,论文的每次改动都离不开老师认真的指点,她在百忙之中给予了我最大的帮助和支持,无私地付出令我颇为感动。在校期间,导师渊博的知识、严谨的治学作风,宽厚的长者风范给我留下深刻的印象,使我受益终生。在此向我的导师表示衷心的感谢!
同时,还要感谢为我提供相关资料的老师、同学、朋友和有关单位。在此向他们表示诚挚的谢意!
随着毕业设计的完成,我真正了解软件的开发和设计,以前的理论知识巩固的全过程,同时也奠定了良好的基础我在今后的工作中。
最后,再一次感谢所有关心、帮助我的老师,同学和朋友!
作者:QQ_511008285