本系统在设计过程中,很好地发挥了该开发方式的优势,让实现代码有了良好的可读性,而且使代码的更新和维护更加的方便,操作简单,对以后的维护减少了很多麻烦。系统的顺利开发和实现,对于高校自习室预约这一方面提供巨大的便利服务,无论是管理员还是学生,都带来了极大的便利,方便大众,为社会的进步与发展提供了一些动力。
关键词:高校自习室预约系统;python语言;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格式进行数据交互.充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护等特点
目 录
1 绪 论 1
1.1背景与意义 1
1.2 国内外研究概况 1
1.3 研究的内容 2
2 系统开发技术 3
2.1 python语言 3
2.2django/flask框架介绍 3
2.3 MySQL数据库 3
3系统分析 4
3.1 系统需求分析 4
3.2 系统可行性分析 4
3.2.1技术可行性 4
3.2.2经济可行性 5
3.3 项目设计目标与原则 5
3.3.1系统总体描述 5
3.3.2开发目标 6
3.4系统流程分析 6
3.4.1操作流程 6
3.4.2添加信息流程 7
3.4.3删除信息流程 8
4 系统设计 9
4.1 系统体系结构 9
4.2 系统总功能结构设计 10
4.3开发流程设计 10
4.4 数据库设计原则 11
4.5 数据表 13
5 系统详细设计 19
5.1前台系统模块实现 19
5.2后台管理员模块实现 21
5.3后台学生模块实现 23
6 系统测试 26
6.1系统测试的目的 26
6.2系统测试方法 26
6.3功能测试 27
结 论 29
参考文献 30
致 谢 31
高校自习室预约系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的python进行编写,使用了django/flask框架。该系统从两个对象:由管理员和学生来对系统进行设计构建。主要功能包括:个人信息修改,对用户、学生、自习室、课程信息、预约信息、取消预约、签到信息等功能进行管理。本系统在一般高校自习室预约系统的基础上增加了首页推送最新信息的功能,方便用户快速浏览,是一个高效的、动态的、交互友好的高校自习室预约系统。1 绪 论
互联网这几年来的发展也是日新月异的,互联网让地球变成了一个地球村,人们足不出户就可以完成各种各样的工作[1]。从2017年末开始,国家各个部门印发的各项文件,包括给领导人的工作报告中都频繁提到了互联网发展的重要性,这为人们指明了互联网将是未来发展的主要方向,在国内受到了众多的重视并得到了大力发展。在这个大数据时代下,互联网的普遍应用可以解决上述人们的问题,一个高校自习室预约系统便开始研发了[2]。
1.1背景与意义
随着社会的快速发展,计算机技术的影响是全面且深入的。目前,社会的各种类型的网站越来越多,但是有些类型的网站附加了太多的商业元素和虚假信息,而且,用户在搜索相关信息时需访问多个网站和大量垃圾广告,这已经在很大程度上影响了对信息搜索效率,并且降低了用户的体验感,使用户很难快速地浏览或查询到自己所需要的相关信息。电子计算机在现代管理中的应用使电子,计算机变成了人类运用现代信息技术的主要工具[3]。可以更高效的处理人类获取信息中精细化、全面化的问题,从而提高了效率。本系统使用具有独特且和资源相对优势的管理方式,来提供一个优秀的系统平台,在这个管理过程受到了鼓励与帮助。而随着互联网的应用,互联网也以一种巨大变革力的新形象出现于商务关系领域。
探究本课题,就是希望能够实现管理员和学生双方的双向选择,便于管理员和学生的同时也可以发现更优质的信息管理系统[4]。
1.2 国内外研究概况
在当前这个飞速发展的时代,无论是国内还是国外,发展都是突飞猛进的,经济形势也是一片明朗。在这种背景下,互联网的这一块的市场成为了各个国家想要争夺的香饽饽。于是无论是国内还是国外一些公司把目光投向了互联网这块市场,越来越多的人对互联网有所了解,具备了一些网络意识。在这种互联网大浪潮的不断冲刷下,各种各样的系统被开发出来[5]。计算机技术无论是在国内还是国外中应用普遍,使计算机这一新型工具成为人们耳熟能详、妇孺皆知的新技术。计算机和互联网的广泛应用,让国内外的距离变“近”了,这个庞大的地球家园一下变成了地球村。国内国外的互联网发展也存在一些差距,我国近些年的互联网发展迅速,跻身于世界前列。
本系统使用python语言,B/S架构和MySQL数据库进行开发。该系统的开发方式无论在国内还是国外都比较常见,而且开发完成后使用普遍,可以给用户提供大量的便利。该系统在国内外前景较为良好[6]。1.3 研究的内容
目前很多人仍把传统的纸质工具,如记录本、文档、文件夹等视为信息处理的主要工具,对大多数人而言,选择记录和获取信息的第一选择永远是纸质工具,而互联网上的信息和数据对人们而言相对抽象遥远。这些纸质工具存在一些优点,但在当下这个互联网飞速发展的社会,纸质工具的缺点也被逐渐放大,如记录数据内容有限、操作不方便、数据重读性低、容易丢失以及浪费资源等。虽然也有很多人在互联网上冲浪来获取信息,但网络这一块的理解也是很有局限的。当下流行的WPS、Word等办公软件成为了人们耳熟能详的系统,但一些更加专业性、性能更加强大的网络信息工具被人们“埋没”在互联网的大海中。高校自习室预约系统是一个便于学生在线预约自习室等,管理员进行管理的平台。因此本文主要论述了系统开发的过程和实现的功能,结合Web技术来实现的高校自习室预约系统。本系统以软件工程理论为开发基础,以专业的计算机编程语言来开发并实现系统的功能[7]。
该选题原则上力求采用标签模块分类等方法,来完成注册登录、预约信息、取消预约、签到信息等,管理员对页面的设置和对后台数据库中数据的增删查改等一系列的操作和运行等。在这一系列模块分类的功能下,完成对高校自习室预约的高效执行和规范管理[8]。
3系统分析3.1 系统需求分析
在当下社会的生活中,互联网已经非常普遍和十分重要。利用好互联网大数据等技术,可以帮助解决很多问题。当下高校自习室预约方面都面临各自的问题。根据这一常见现象,本高校自习室预约系统的出现就有很大的需求。该系统可以很好地解决这些麻烦和问题。系统中两类用户的数据极为关键,所以系统数据要整理好,因为数据的存储是按一定格式,但并非无序的,其概念是:按长期的稳定格式,可共享的存放在电脑内存上[9]。数据库管理系统,主要是指数据保存、更改和添加以及数据库的设置。为保证系统数据管理的顺利操作,一些有能力的处理者可以进行管理而不需要专业的人来处理。资料表的建立,可对资料表中的数据加以调整,数据的重新组合和重新建立,确保资料的可靠性。介于数据库系统的功能与强大等性质之间本数据库系统的设计中主要使用了MySQL实现对数据的集中管理。各个方面都具有不错的性能[10]。
3.2 系统可行性分析
3.2.1技术可行性
在系统可行性分析中,技术可行性分析是十分重要的分析角度。本高校自习室预约系统是在Windows 11系统上进行开发与运行,该系统是目前比较先进,应用范围比较广的电脑系统。开发该系统的电脑的客户端也都配置较高的硬件设施,性能强大。系统开发所使用的各种技术也都来自PC端,也都十分的先进。与普通的Web服务器相比,具有非常明显的优势。开发的技术也都来自也专业方面,有据可依,具有较强的理论性和权威性[11]。
(1)硬件可行性分析
高校自习室预约系统的操作运行和数据处理跟大多数系统一样,大同小异,没有特殊的地方,对于硬件也没有过多的要求。无论是公司的办公电脑,还是家里的私人电脑,只要能够进行正常的代码编写和网页浏览就可以。该系统的“苛刻”条件是针对于服务器,服务器的优劣是该系统的关键,所以拥有一个良好的服务器至关重要。对于服务器的选择应慎重,必须选择具有良好的完整性,安全可靠的服务器,以确保打开浏览器执行一系列操作时能够流畅的运行,不会出现卡顿的现象,最后安全方面也有所保障。
(2)软件可行性分析
该系统运用的软件是一些完全免费且常用的,操作简单易上手,只要是有点计算机基础的用户只要花上很少的时间就能掌握相关技能;同时无论是从经济上还是安全上都能使系统得到充分的保障。
技术可行性从硬件可行性分析和软件可行性分析这两个方面进行了可行性研究,可以看出该高校自习室预约系统的开发没有问题,所以在技术这一方面,本系统没有阻碍,会顺利执行。
系统开发流程的分析是一个至关重要的过程,它是指通过系统的设计开发目的初衷、面向使用用户的范围、系统运行和操作的安全性、各种问题的处理以及后台数据的分析能力等各个角度,来对高校自习室预约系统进行设计、开发、搭建和调节,以保证该系统能够顺利的完成,达到预期的工作状态。上述每个环节、每个步骤一开始就要下足功夫,从各个方面、各个角度进行调查研究,进行大量的测试和评估,来保证高校自习室预约系统的正常和该系统的后台数据库的完整性以及安全性,从而把控系统所包含信息的安全性、确保信息进入、出口顺利过渡。然后,对系统和数据进行操作和分析,根据每一步的执行步骤,完成信息的流程图制作过程。
系统的开发对管理模型和系统应用中的数据库进行了分类,创建代码,以及系统测试,如图4-6所显示。
2.2经济可行性
高校自习室预约系统开发之前,通过互联网、广播以及新闻等渠道得出了关键信息,对于现有的高校自习室预约的系统不多且大都不太健全,该系统的开发可以给这个领域增加新的血液,具有良好的前景。
高校自习室预约系统开发的时候,对一些相关事于进行了充分的调查。调查都是开发人员亲自做的,没有花钱雇佣他人,接近零成本。开发过程遇到困难时,通过互联网搜索,或者向指导老师求助来进行解决的,没有造成成本损失。
高校自习室预约系统开发完成后,该系统是基于python来开发的,采用了MySQL数据库。两者都具有较强的稳定性和安全性,在后续的维护与更新中,也能够减少成本浪费。
综上所述,开发前、中、后期成本和要求非常小,具有较高的经济可行性。而且,该系统的开发成功也会有不错的市场前景[12]。
3.3 项目设计目标与原则
3.3.1系统总体描述
关于高校自习室预约系统的基本要求
(1)功能要求:信息共享、信息更新、平台个性化的设置、两者相互的信息交流、一些数据的增删查改和访问、学生和管理员数据的查找及管理等常见的功能。
(2)性能要求:在各种各样的操作系统上,无论是学生还是管理员都能够顺利的登录该高校自习室预约系统,且成功登录后完成相应的操作和预期的目的,顺利执行各个页面功能。
(3)安全性保密规定:管理员的登录一定要进行安全监测。管理员通过特定的账号和密码登录并要进行身份验证才能进入下一个界面从而进行一些内部操作。
(4)系统的运行环境要求:支持Windows等一系列操作平台。
3.3.2开发目标
高校自习室预约系统的主要开发目标如下:
(1)对零碎化、分布散的数据信息进行收纳、整理,通过网络服务平台使这些信息内容更加调理,更加方便化和清晰化,让访问该系统的每个用户享受浏览的过程。
(2)生活中存在的一些现象:人员冗余。高校自习室预约系统应尽量减少用户的需求压力,给他们提供省时省力省心的服务平台,降低其工作量。
(3)便于查询信息及管理信息等。
(4)通过计算机网络技术,提升解决管理问题和技术工作的质量,为用户一种规范方便的服务。
(5)该系统的设计风格应该简约整洁,操作容易上手,目标信息明确,避免花里胡哨。
(6)为社会稳定和发展贡献一份力量。
3.4系统流程分析
3.4.1操作流程
首先为系统登录页面。进入页面后,用户可进行登录和注册的操作。点击登录后,页面就会出现一个登录提示框,向用户传达信息:要进行用户名和密码的输入,完成后才可以进行下一步的操作。用户输入完成后,系统会将输入的信息提交给后台,与数据库中的信息记录进行比较判断。判断比较内容主要分为三个方面:从用户名是否为空、输入的密码是否为空、用户名和密码是否匹配三方面进行判断。只有上述三个条件同时满足,数据库中的信息匹配正确,才视为登陆成功,方可完成后续的操作。若以上三种情况有一条不满足,则会提示该次登录错误,就需要进行重新登录。
图4-10预约信息实体属性图
4.5 数据表
把按照数据库理念建立的E-R图,转换为国际关系信息库。在关联数据库中,统计关联主要由统计表所构成,但是表的构成主要体现在表格的数文字段上。如下表所示。
表4-1:公告资讯
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
introduction longtext 4294967295 简介
picture longtext 4294967295 图片
content longtext 4294967295 内容
表4-2:课程信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
kechengmingcheng varchar 200 课程名称
kechengtupian longtext 4294967295 课程图片
kechengleixing varchar 200 课程类型
kechengziyuan longtext 4294967295 课程资源
kechengjieshao longtext 4294967295 课程介绍
表4-3:配置文件
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键
name varchar 100 配置参数名称
value varchar 100 配置参数值
表名:zixishi
功能:自习室
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
mingcheng varchar 200 名称
tupian longtext 4294967295 图片
guimo varchar 200 规模
zuowei int 座位
weizhi varchar 200 位置
sheshi varchar 200 设施
keyueshijian varchar 200 可约时间
shifouyouke varchar 200 是否有课
xiangqing longtext 4294967295 详情
表4-4:预约信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
yuyuedanhao varchar 200 预约单号
mingcheng varchar 200 名称
tupian longtext 4294967295 图片
zuowei int 座位
qiandaozhuangtai varchar 200 签到状态
yuyueshijian datetime 预约时间
beizhu varchar 200 备注
xuehao varchar 200 学号
xingming varchar 200 姓名
shouji varchar 200 手机
sfsh varchar 200 是否审核 待审核
shhf longtext 4294967295 审核回复
表4-5:学生
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
xuehao varchar 200 学号
mima varchar 200 密码
xingming varchar 200 姓名
xingbie varchar 200 性别
touxiang longtext 4294967295 头像
shouji varchar 200 手机
banji varchar 200 班级
表4-6:用户表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键
username varchar 100 用户名
password varchar 100 密码
role varchar 100 角色 管理员
addtime timestamp 新增时间 CURRENT_TIMESTAMP
表4-7:token表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键
userid bigint 用户id
username varchar 100 用户名
tablename varchar 100 表名
role varchar 100 角色
token varchar 200 密码
addtime timestamp 新增时间 CURRENT_TIMESTAMP
expiratedtime timestamp 过期时间 CURRENT_TIMESTAMP
表4-8:收藏表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
userid bigint 用户id
refid bigint 商品id
tablename varchar 200 表名
name varchar 200 名称
picture longtext 4294967295 图片
type varchar 200 类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) 1
inteltype varchar 200 推荐类型
remark varchar 200 备注
表4-9:取消预约
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
yuyuedanhao varchar 200 预约单号
mingcheng varchar 200 名称
tupian longtext 4294967295 图片
yuyueshijian varchar 200 预约时间
quxiaoshijian datetime 取消时间
quxiaoyuanyin longtext 4294967295 取消原因
xuehao varchar 200 学号
xingming varchar 200 姓名
shouji varchar 200 手机
crossuserid bigint 跨表用户id
crossrefid bigint 跨表主键id
sfsh varchar 200 是否审核 待审核
shhf longtext 4294967295 审核回复
userid bigint 用户id
表4-10:签到信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
mingcheng varchar 200 名称
qiandaoshijian datetime 签到时间
renlianshibie longtext 4294967295 人脸识别
qiandaobeizhu varchar 200 签到备注
xuehao varchar 200 学号
shouji varchar 200 手机
banji varchar 200 班级
shhf longtext 4294967295 回复内容
5 系统详细设计
5.1前台系统模块实现
当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到高校自习室预约系统的导航条显示首页、自习室、课程信息、公告资讯、后台管理、个人中心等,系统首页界面如图5-1所示:
6 系统测试
6.1系统测试的目的
在经过长期的测试与修改下,系统能正常运行,已经达到基本的要求,但难免有时会出现一些报错和Bug,如果忽略一些不起眼的小问题有可能会产生连锁反应:数据的报错,数据的无缘被修改以及泄露,甚至会成为不法分子的可乘之机,给开发者和用户造成惨重的代价。综合以上几点,必修要对这个完成的系统进行测试,只有通过一定的测试来解决这些出现的问题。通过不断地进行测试,一步一步的发现系统中的问题,然后对问题进行一次又一次的修改,使该高校自习室预约系统更加完善,最后争取没有漏洞和Bug,成为一个接近完美无暇的高校自习室预约系统。还要在测试修改的过程中吸取经验:自己为什么会犯这种错误、代码的编写哪个逻辑环节出了错误、又有哪些地方是因为自己的粗心大意造成的等等。使系统本身接近完美以及以后的维护更加快捷方便[13]。
对于高校自习室预约系统,要对其进行一个整体的测试。测试根据各个模块的功能,以及各功能之间的相互联系,协同关系来进行操作。尤其在学生和管理员二个的数据库这一地方进行多次测试以及调整。通过一次又一次的系统测试,保证高校自习室预约系统能够在上线面向开放使用后是一个方面、安全、省心的系统。
6.2系统测试方法
系统的测试方法有很多,在对系统进行测试时,应选择最适合并且稳定性良好最好保障的测试方法进行测试。撰写的代码完成后,就要开始着手于对系统进行一系列的测试。本系统代码是在Eclipse编写完成的,完成后部署在Eclipse集成好的Tomcat7上。测试的浏览器使用了Google浏览器进行的。系统测试的具体要求顺序如下:
(1)打开相应的运行代码软件,使用Google浏览器运行该系统页面[14]。
(2)测试整体从三个角度进行测试:登录测试、删除分类测试和修改密码测试。对这些功能进行多次的测试,多用几个不同的测试用例。测试的同时还要分析源代码,对于产生的异常结果和错误,进行分析查找其原因,进行解决。
(3)在测试的过程中,尽量使用Debug来进行测试,这样得到的结果和数据更加准确无误。
(4)还要对系统进行高数据下并行和并发的系统测试[15]。
6.3功能测试
(1)用户登录测试。在登录模块页面,通过输入二个用户名和密码进行测试。其中只有但三次输入的用户名“admin”和密码“admin”是正确的,会发现第三个是登陆成功的提示信息,而第一个和第二个登录失败。第一个登录失败的原因是因为用户名和密码不匹配,数据库中无法找到相应的匹配数据;第二个登录失败的原因是因为该用户名没有注册,数据库中没有相应的记录,所以第一次和第二次的登录会出现登录失败的得结果。如表6-1所示。
(2)删除分类测试。在删除分类模块,找到相对应的删除信息,点击“删除”该信息的接口,删除成功后信息会在数据库中的表中进行删除,然后返回前端页面删除成功的提示框。通过一次又一次的删除操作,发现该系统的删除功能以及后端代码运行正常,多次的删除测试说明该系统的删除分类功能没有问题。如表6-2所示。
(3)修改密码测试。在修改密码模块,通过二个用户的修改数据进行该功能的测试。测试中发现只有第三次的修改密码成功了,第一次和第二次的密码修改出现了问题。问题的原因分别为“密码错误”和“确认密码不一致”的问题。通过多次的修改和测试,发现修改密码这一功能运行正常,没有问题。如表6-3所示。
通过上述一次又一次的测试修改,又加上对系统的白盒测试和黑盒测试等一系列的操作,对系统进行了多次全面具体的测试。该系统的各个功能模块都能正常运行,性能良好,占据CPU的空间也较小。对所有的用户都有很大的帮助,提供了便利,对账户信息有较强的保密性,后台数据库能保持良好的完整性和安全性。无论是前端的页面设计,还是后端的数据库和代码运行,都十分不错,达到了预期的效果。
结 论
经过这几个月的努力,在老师和同学的帮助与指导下,对系统顺利完成。对于该系统的研究和开发虽然没有耗费大量的时间,但为了成功完成该高校自习室预约系统,消耗了大量的经历和汗水去了解学习这方面涉及到的专业知识以及开发环境的应用。
该系统的设计与实现,是经过了很长时间的分析、观察、调研和研究分析并整理资料实施的。高校自习室预约系统采用B/S架构、python开发语言、django/flask框架以及MySQL数据库等技术开发与设计。该系统主要分为学生和管理员两个角色。该高校自习室预约系统分为前端和后端两大部分。前端的主要功能向注册学生展示自习室、课程信息、公告资讯等,并对一些数据进行记录。后端的主要任务是对数据的一些准备处理的工作,对于管理员的数据属性的添加、维护和修改。每个功能在完成各自任务的同时也相互合作,一起来处理各个任务以及进程。
尽管该系统对用户可以满足一些基本的高校自习室预约的需求,但该系统还存在许多问题和有待完善的地方。主要分为以下两点:
(1)该高校自习室预约系统的适用面比较局限。页面的设置还是过于繁琐,不够简洁。加上社会方面的飞速发展,用户的条件也在发生新的变化。该系统还存在大数据下的并发和并行操作的不稳定性,当一个时间段内或者同一时刻时,过量的用户访问该网站会让网站的服务器出现崩溃的现象,一些操作无法正常的运行。种种原因使得该系统存在一些局限性。
(2)需要人工来处理的数据模块太多,需要减少大量的人工操作。在对高校自习室预约处理的程序中,难免会出现各种各样的错误数据或者是异常数据,一旦这些数据大量积累存在过多时,系统自我调节修复能力有限就不得不需要人工的干预了。但是人工如果经常去进行操作的话,就会造成该系统的运行速度变慢,对其余正确的数据产生干扰,而且有可能对正确数据的损害以及泄露,从而将会减少该系统的稳定性。对于人力和财力都造成了不必要的浪费。
从上述可以看出该高校自习室预约系统还有很多不足之处,在日后要结合具体项目问题进行修改和研究。