摘 要
随着社会的快速发展和人们生活水平的不断提高,旅游已逐渐成为人们生活的重要组成部分,用户能够获取旅游信息的渠道也随信息技术的广泛应用而增加。大量未经过滤的信息在展示给用户的同时,也淹没了用户真正感兴趣的信息。为了方便用户快速定位自己感兴趣的信息,个性化学生就业管理系统应运而生。
本系统的前端界面涉及的技术主要有Django, HTML,jQuery等等,通过这些技术可以实现前端页面的美观和动态效果使之符合广大群众的审美观,后台主要使用的技术主要有Python编程语言,MySQL数据库,Ajax异步交互,根据Ajax异步模式的学生就业管理系统解决了传统旅游推荐方式中数据分析所带来的人力、物力和时间上的虚耗和交流深度的限定,这让交流的过程更快捷、准确、便利,同时完成学生就业管理系统的基本功能:学生用户、就业信息、平均工资等。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对学生就业管理系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现学生就业管理系统和部署运行使用它。
关键词:就业管理;Python语言;Mysql数据库
Student employment management system
Abstract
With the rapid development of society and the continuous improvement of people's living standards, tourism has gradually become an important part of people's life, and the channels for users to obtain tourism information have also increased with the wide application of information technology. While a large amount of unfiltered information is displayed to users, it also drowns the information that users are really interested in. In order to facilitate users to quickly locate the information they are interested in, personalized student employment management system came into being.
The front end interface of the system mainly involves technologies such as Django, HTML, jQuery, etc. Through these technologies, the beauty and dynamic effect of the front end page can be achieved to make it conform to the aesthetic view of the masses. The main technologies used in the background are Python programming language, MySQL database, Ajax asynchronous interaction. The student employment management system based on Ajax asynchronous mode has solved the manpower The waste of material resources and time and the limitation of the depth of communication make the communication process faster, more accurate and convenient, and complete the basic functions of the student employment management system: student users, employment information, average wage, etc. This report first analyzes the background, role and significance of the research, laying a foundation for the rationality of the research work. This paper analyzes the various requirements and technical problems of the student employment management system, proves the necessity and technical feasibility of the system, and then makes a basic introduction to the technical software and design ideas needed to design the system, and finally realizes the student employment management system and deploys and uses it.
Key words:Employment management; Python language; MySQL database
目 录
第1章 绪论
1.1 选题的目的和意义
1.2 研究现状
第2章 开发工具与相关技术介绍
2.1 Pycharm简介
2.2 MySQL描述
2.3 Python编程语言
2.4 Django框架
第3章 系统分析
3.1 可行性分析
3.2 功能需求分析
3.3 非功能需求分析
3.4 安全性需求分析
3.4.1 系统的安全性
3.4.2 数据的安全性
3.5 数据流程分析
第4章 系统设计
4.1 系统架构设计
4.2 系统总体设计
4.3 系统功能设计
4.4 数据库设计
4.4.1 数据库概念设计
4.4.2 数据库表设计
第5章 系统实现
5.1 数据库访问层的实现
5.2 管理员首页模块的实现
5.3 登录模块的实现
5.4 个人资料模块的实现
5.5 用户管理模块的实现
5.6 就业信息管理模块的实现
5.7 平均工资管理模块的实现
第6章 系统测试 26
6.1 测试目的 26
6.2 功能测试 26
6.3 性能测试 27
第7章 总结与展望 29
参考文献
致谢 33
就业是民生之本。关心就业就是关心民生。现代经济社会发展的一个重要任务就是必须将促进就业增长作为基本目标,这不仅是因为就业关系到民生,更关系到社会稳定和经济长远发展。随着我国社会经济的快速发展以及信息化、全球化等因素的影响,社会对人才的需求也越来越大,但是我国社会就业岗位的增长速度远远没有高校毕业生的增长速度",就业问题仍成为我们当前最主要的社会问题。另一方面,在当前这个经济全球化的时代里,用人单位也都认识到人才的重要性,谁拥有顶尖人才,谁就拥有一个无法比拟的力量。因此,为企业和求职者提供一个直接联系交流的就业网平台已经越来越重要。在实际的工作中,就业信息管理对工作人员来说数据量大、任务繁琐。传统的手工管理方式已经不能满足现在的需求,开发一个信息化、自动化的就业信息管理系统已经成为必然趋势,就业信息管理系统能对就业信息加以统一管理,提供人性化服务。国家就业部门对我们就业信息管理系统的建设也是非常看重,甚至有些以就业信息管理水平来评价一个地方的经济发展水平,这使得每个地方加强就业信息管理系统的改革和开发工作。随着计算机技术的发展和欢联网的普及使用,通过设计和建设网络拓扑架构、网络安全系统、数据共享和管理、信息的发布和管理来加强企业/事业单位和求职者直接的交流。
学生就业信息的管理是学校日常工作中的重要组成部分。高校招生规模的逐步扩大和认识制度的改革,毕业学生人数将不断增加,而对毕业生管理的人员则相对减少。加上我国高等学校基层学生管理工作的头绪多,内容杂,管理细,要求高,传统管理办法已基本不适应新形势的要求。现实中繁重的毕业生信息管理工作给学校管理人员带来了很大的压力。毕业生毕业信息的存档,毕业生就业信息的了解,各个企业招聘信息的浏览,如果没有一个完善的毕业生几页信息管理系统,学校管理人员的工作量就会大大增加。同时毕业生信息的手工登录与查询,是一项非常繁重而枯燥的劳动,年毕业生的变化都需要重新规划,耗费许多人力和物力,而且会因人的情绪烦燥而出现失误。因此在计算机飞速发展的今天,应用数据库技术实现毕业生信息的管理是可行而必要的工作,实现高校毕业生就业信息管理系统的信息化,既能够提高工作效率,又可以提高工作水平。
计算机具有运算速度快、正确、能按照设计逻辑处理问题等特性,在毕业生信息的录入、管理中如采用一个计算机化的信息系统进行处理,就不会发生信息遗漏或者查询不方便的情形。
在学校,尤其是在各大高校,毕业生就业信息是学校的一项重要的数据资源,毕业生信息管理也是学校的一项常规性的重要工作。而长期以来,毕业生信息管理都是依赖人工进行的,面对如此众多的毕业生信息,工作可想而知。不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可控因素,造成了毕业生信息管理的某些不规范,太笼统的状态。作为计算机应用的一部分,使用计算机对毕业生信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高的效率,也是学校科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情 ,在下面的各章中我们将以开发一套毕业生信息管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
如今,计算机的价格已经十分低廉,性能却有了长足的进步。计算机已经成为我们学习和工作的得力助手。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:
首先,计算机可以代替人工进行许多繁杂的劳动;
欺,计算机可以节省许多资源;
第三,计算机可以大大的提高人们的工作效率;
第四,计算机可以使敏感文档更加安全,等等。
现在我国的学校中毕业生信息的管理水平大多还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
PyCharm是用于Python脚本语言的最流行的IDE。
1.每个文件都有其输出窗口。
2.可以终止进程(只要点下按钮就行)。
3.各种提示超强:①没用的变量颜色会变灰②用错了的变量下面会有红色波浪线③书写提示(sublime也有但较弱)。
4.索引功能超强。
现在MySQL数据库在网络上它可以支撑许多个用户,而且也可以适应客服机和服务器的部署或者配置等,我们这里的服务器和客户机其实就是一种软件上的概念,并且我们使用的计算机硬件也与他们不存在一一对应的关系。
MySQL是一款非常流行的关系型数据库管理系统,它的出现一直都是佼佼者,它不仅功能非常强大,而且使用起来非常方便,并且MySQL的跨平台能力也很好,软件开发人员非常喜欢它的这些强大的优点。不同于其他关系型数据库,对于数据库的管理它有着自己的一套方案,通过对用户设定相应的权限和角色来达到对数据库的管理。由此可见,MySQL是一个能够适用于吞吐量高,可靠性高,效率高的一款数据库管理软件。
优点一:MySQL中对于不同身份的用户都设定其不同的权限来完成不同的业务逻辑,这使得MySQL在安全和完整性远远超出了其他关系型数据库。
优点二:对于那些动画、图形和声音的数据类型MySQL也可以支持,这说明多数据类型MySQL也是可以支持的。
优点三:MySQL还可以做到多个平台的开发,软件开发的多种编程语言都可以实现对MySQL数据库的操作。
Python是一种开发语言,能够以直译的方式进行计算机语言,而且可以面向对象编程。它是由Guido van Rossum在十九世纪八十年代末研发出来,并且在九一年公开发行使用。Python有很多特点,比如有简洁的语法,清晰的语句,丰富的类库。正式由于这些优点,能够非常快速的和其他语言进行结合,来实现各种功能模块。很多人给它起了个外号叫“黏黏胶”语言。使用Python快速生成程序的原型,是现在很多程序员使用的方法。如果其中有比较特殊要求的地方,也非常方便的进行修改。
而且PyQt具有双证,为它能够跨平台运行(例如UNIX,微软和苹果的平台)提供了保证。
使用Python语言之前,要进行平台的安装,用户需要根据不同的平台,下载不同的版本,然后进行环境变量的配置,便可以进行运行。
Python 特点:
1.相对于其他计算机语言来说学习起来比较简单:Python的关键字较少,结构相对简单,语法简单,对于刚学编程语言的人来说更容易上手。
2.阅读起来也相对简单:Python代码结构简洁明了,并在定义上看起来也非常清晰,所以在阅读的过程中更加简单。
3.维护起来方便:Python的维护简单方便。
4.标准库特别广泛:Python的最大的最大优势是有非常多的库,而且是跨平台的,而且对系统的兼容性很好,比如在UNIX,Windows和Macintosh系统上都能够进行兼容。
5.具有方便的互动模式:有了互动模式的支持,开发者可以从代码就可以看到结果,这样开发者对程序的测试与调试,变的更方便。
6.可移植性好:Python可以跨平台运行。
7.扩展性非常好的:如果有关键的代码,你可以用特殊的语言进行编写,也能够在系统中调试运行。
Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:
用于创建模型的对象关系映射;
为最终用户设计较好的管理界面;
URL 设计;
设计者友好的模板语言;
缓存系统。
Django(发音:[`dʒæŋɡəʊ]) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计。Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。
Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。
由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times评选为2013 SD Times 100,位列“API、库和框架”分类第6位,被认为是该领域的佼佼者。
技术性方面,本系统采用Python、MySQL来支持事务和数据逻辑用H5来做前台页面的显示。以上技术,均由本人经过系统学习,并且都是在课程设计中实践过的,可以使得开发更加便捷和系统。从技术角度看,这个系统是完全可以实现的。
实用性方面,本次设计的主要任务是在学生就业管理系统内¥购票会员卡等,符合当前潮流的发展。从用户角度出发,同时也考虑系统运营成本和人力资源,采用网络上的便捷方式,实现线上业务,使得业务流程更系统,也更方便用户的体验,比较实用。
经济性方面,由于本课题中设计的学生就业管理系统的主要目的是为了能够更加方便及快捷的进行信息的查询管理及检索服务,也就是能够可以直接投入使用的信息化软件。系统的主要成本主要是集中在对使用数据后期继续维护及其管理更新这个操作上。但是一旦系统投入到实际的运行及使用之后就能够很好的提高信息查询检索的效率,同时也需要有效的保证查询者的信息方面的安全性,同时这个学生就业管理系统所带来的实际应用方面的价值是远远的超过了实际系统进行开发与维护方面的成本,因此,从经济上来说开发这个软件是可行的。
学生就业管理系统的功能主要分为前台用户根据自己的需求进行注册登录,浏览就业信息并对选中的就业信息进行查询评论操作。后台系统管理员因职责的不同,分为管理员和注册用户,而管理员主要对学生用户、管理员、就业信息、平均工资进行管理维护。
学生用户用例图如下所示。
图3-1 学生用户用例图
管理员用例图如下所示。
图3-1 管理员用例图
首先主要考虑的是系统功能软件,在具体设计的环节上,是不是能够较好的满足各类用户的基本功能需求,如果不能较好的满足用户需求,那么这个系统的存在是没有价值的。软件系统的非功能性求分析,从7个方面展开,一个是性能分析,针对系统;一个是安全分析,针对系统,一个是完整度分析,针对系统,一个是可维护分析,针对系统,一个是可扩展性分析,针对系统,一个是适应业务的性能分析。面对新疆旅游网站存在的性能、安全、扩展、完整度等7个方面性能综合比对分析后发现,需要相应的非功能性需求分析。
安全性对每一个系统来说都是非常重要的。安全性很好的系统可以保护企业的信息和用户的信息不被窃取。提高系统的安全性不仅是对用户的负责,更是对企业的负责。尤其针对于学生就业管理系统来说,必须要有很好的安全性来保障整个系统。
系统具有对使用者有权限控制,针对角色的不通限制使用者的权限,以此来确保系统的安全性。
数据库中的数据是从外界输入的,当数据的输入时,由于种种原因,输入的数据会无效,或者是脏数据。因此,怎样保证输入的数据符合规定,成为了数据库系统,尤其是多用户的关系数据库系统首要关注的问题。
因此,在写入数据库时,要保证数据完整性、正确性和一致性。
对系统的数据流进行分析,系统的使用者分为二类,一般用户,管理员。系统主要对界面信息传送,登录信息的验证,注册信息的接收,用户各种操作的响应做处理。
系统顶层数据流图如下图所示。
图3-2 顶层数据流图
要判断用户是是什么身份,是根据登录的数据来判断后,跳转到对应的功能界面。在系统的内部用户就可以对数据进行操作,数据库中心就可以接收到系统传输的有效数据流来对数据sql语句进行对应操作。
系统底层数据流图如下图所示。
图3-3 底层数据流图
系统可以分为前台和后台两部分,每一种操作后系统都返回操作结果。前台和后台的数据连接主要通过数据库,既分别对数据库做不同的操作。
本学生就业管理系统的架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。
系统架构如下图所示。
图4-1 系统架构
学生就业管理系统总体分为前台用户模块和后台管理员模块。
两个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。
综上所述,系统功能结构图如下图所示。
图4-2 系统功能结构图
人员管理模块
该模块是为所有用户登录设计的,如学生这种普通用户登录后只能进行自己的普通功能操作(如个人信息修改),管理员和超级管理员登录后有不同的权限,管理员不能超越权限。超级管理员能对整个系统的数据进行管理,主要是用户的登录权限以及用户登录后在系统里的操作权限。
平均工资模块
管理员来录入平均工资数据,点击平均工资录入按钮,依次填写要录入的工资数据,点击提交按钮,将数据提交至数据库,然后刷新平均工资数据页面,每条数据右边有删除和编辑按钮,来完成相应的删除和更新功能。
打印和导出模块
系统多个页面可以进行打印功能,包括信息详细页,信息列表页,打印时调用外部打印机,完成打印设置即可打印,在信息列表页可以将该信息列表导出至excel中,用户选择保存excel文件的路径,既可以下载至本地,在excel中可以自由编辑。
根据前面的数据流程图,结合系统的功能模块设计,设计出符合系统的各信息实体。
系统ER图如下图所示。
图4-3 系统ER图
数据库逻辑结构就是将E-R图在数据库中用具体的字段进行描述。用字段和数据类型描述来使对象特征实体化,最后形成具有一定逻辑关系的数据库表结构。学生就业管理系统所需要的部分数据结构表如下表所示。
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
average_wage_id |
int |
10 |
0 |
N |
Y |
平均工资ID |
|
2 |
college_name |
varchar |
64 |
0 |
Y |
N |
学院名称 |
|
3 |
average_wage |
varchar |
64 |
0 |
Y |
N |
平均工资 |
|
4 |
statistician |
varchar |
64 |
0 |
Y |
N |
统计人员 |
|
5 |
statistical_date |
date |
10 |
0 |
Y |
N |
统计日期 |
|
6 |
note_details |
text |
65535 |
0 |
Y |
N |
备注详情 |
|
7 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
8 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
employment_information_id |
int |
10 |
0 |
N |
Y |
就业信息ID |
|
2 |
student_information |
int |
10 |
0 |
Y |
N |
0 |
学生信息 |
3 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
4 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
5 |
college_name |
varchar |
64 |
0 |
Y |
N |
学院名称 |
|
6 |
internship_company |
varchar |
64 |
0 |
Y |
N |
实习公司 |
|
7 |
internship_post |
varchar |
64 |
0 |
Y |
N |
实习岗位 |
|
8 |
internship_salary |
varchar |
64 |
0 |
Y |
N |
实习薪资 |
|
9 |
city |
varchar |
64 |
0 |
Y |
N |
所在城市 |
|
10 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
11 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
12 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
hits_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
student_users_id |
int |
10 |
0 |
N |
Y |
学生用户ID |
|
2 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
3 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
4 |
student_gender |
varchar |
64 |
0 |
Y |
N |
学生性别 |
|
5 |
college_name |
varchar |
64 |
0 |
Y |
N |
学院名称 |
|
6 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
7 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
8 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
9 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
upload_id |
int |
10 |
0 |
N |
Y |
上传ID |
|
2 |
name |
varchar |
64 |
0 |
Y |
N |
文件名 |
|
3 |
path |
varchar |
255 |
0 |
Y |
N |
访问路径 |
|
4 |
file |
varchar |
255 |
0 |
Y |
N |
文件路径 |
|
5 |
display |
varchar |
255 |
0 |
Y |
N |
显示顺序 |
|
6 |
father_id |
int |
10 |
0 |
Y |
N |
0 |
父级ID |
7 |
dir |
varchar |
255 |
0 |
Y |
N |
文件夹 |
|
8 |
type |
varchar |
32 |
0 |
Y |
N |
文件类型 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
user_id |
mediumint |
8 |
0 |
N |
Y |
用户ID:[0,8388607]用户获取其他与用户相关的数据 |
|
2 |
state |
smallint |
5 |
0 |
N |
N |
1 |
账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 |
user_group |
varchar |
32 |
0 |
Y |
N |
所在用户组:[0,32767]决定用户身份和权限 |
|
4 |
login_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
上次登录时间: |
5 |
phone |
varchar |
11 |
0 |
Y |
N |
手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 |
|
6 |
phone_state |
smallint |
5 |
0 |
N |
N |
0 |
手机认证:[0,1](0未认证|1审核中|2已认证) |
7 |
username |
varchar |
16 |
0 |
N |
N |
用户名:[0,16]用户登录时所用的账户名称 |
|
8 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵称:[0,16] |
|
9 |
password |
varchar |
64 |
0 |
N |
N |
密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 |
|
10 |
|
varchar |
64 |
0 |
Y |
N |
邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 |
|
11 |
email_state |
smallint |
5 |
0 |
N |
N |
0 |
邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
13 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
group_id |
mediumint |
8 |
0 |
N |
Y |
用户组ID:[0,8388607] |
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000] |
3 |
name |
varchar |
16 |
0 |
N |
N |
名称:[0,16] |
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该用户组的特点或权限范围 |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
8 |
register |
smallint |
5 |
0 |
Y |
N |
0 |
注册位置: |
9 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
从B/S架构的原理可知,学生就业管理系统的各大模块的实现均需要对数据库的数据进行操作,具体包括查询数据、写入数据、更新数据和删除数据,因此,在开发各功能模块前,首先创建一个名称"conn.Django"的文件,该文件主要用于连接数据,以后对程序需要操作数据时,可能使用语句""调用就可以了。
系统呈现出一种简洁大方的首页:界面简约、鳞次栉比,用户能轻车熟路的使用。出于对系统使用群体广泛的顾虑,应有良好性能的后台。
如下图所示为系统的首页界面。
图5-2管理员首页界面
主要由两部分组成,登录前的登录界面以及登录后的用户功能界面。登录界面,要求用户输入用户名和密码,当用户名和密码其中一个输入为空时,给出提示“用户名,密码不能为空”。获取用户名和密码后到数据库中查找,如果用户名存在,以及对应的密码正确,则登录成功,否则登录失败。登录失败后给出提示,并把焦点停在文本框中。登录成功后将该次会话的全局变量username设置为用户名。登录成功后进入会员的功能模块,主要有会员基本信息修改,已经发布景点信息管理,发布信息,和退出功能。退出功能是清除全局变量username的值,并跳回到首页。
登录流程图如下图所示。
图5-3登录流程图
登录界面如下图所示。
图5-4登录界面
用户点击登录填写账号信息登录后,会切换内容为“某某用户欢迎您”和历史订单,并给出注销链接。当用户登录成功后会将个人信息保存在session作用域中,点击自己的用户名时,会跳转到个人详细信息页面,由后台通过Freemarker取出session作用域中的用户信息进行动态渲染,例如,邮箱、电话号码、用户名等等。同时页面上会显示修改个人信息和修改密码的按钮,这时客户可以修改自己的登录密码以保障账号的安全性,防止被人窃取账号,通过UserController.java的updatePassword()实现,同时也可以根据自己的个人信息是否变动做出相应的修改,通过updateUserInfo()实现。
密码修改流程图如下所示。
用户在yhzhgl查看用户信息,先使用sql语句查询出所有用户表的数据,然后调用PageManager.getPages(url,4,sql, request ),返回一个ArrayList的对象,在for循环里,使用python得到每个ArrayList对象的数据,在python页面中解析ArrayList对象,得到其各个键值对的值。
用户管理界面如下图所示。
图5-4用户管理界面图
添加就业信息时,输入必填字段后,表现层的KetishenbaoController接受传过来的就业信息参数,再调用KetishenbaoController类的addKetishenbao方法,经过KetishenbaoService业务层到KetishenbaoMapper持久层的处理,完成对整个添加就业信息的操作。addKetishenbao方法也和用户管理中的addUser方法类似,同时做添加和修改工作。
修改就业信息时,选择需要修改的就业进行修改,调用KetishenbaoController控制器的editKetishenbao方法,拿到该就业原本的信息并显示到页面,管理员再对需要修改的就业信息字段进行修改,完成后调用addKetishenbao方法,调用业务层的updateByKey方法,更新数据库的就业信息表的数据。
就业信息管理流程图如下所示。
图5-6就业信息管理流程图
就业信息管理界面如下所示。
图5-6就业信息管理界面
此页面的关键是编写平均工资,包括学院名称、平均工资、统计人员、统计日期、备注详情等。单击提交按钮以完成信息的添加。如果未写入完整的平均工资,例如,如果未写入学院名称,系统将给出相应的错误提示,并且无法成功输入。数据以概念的形式以onsubmit =“return checkForm()”的形式写入以进行检查,checkForm()函数是一种用于写入数据的不同类型的校对方法,是不是为空也是经过form表单中的οnsubmit=”return checkForm()来检查。
管理员点击左侧菜单“平均工资管理”,页面跳转到平均工资管理外观,调用后台景点查询所有平均工资。并将信息密封到数据集合List,绑定到请求对象,然后页面跳转到相应的python页面,显示出平均工资,单击删除按钮完成平均工资的删除。
平均工资界面如下图所示。
图5-8平均工资界面
对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。
登录测试用例表如下所示。
表6-1登录测试用例
测试性能 |
用户或操作员登录系统 |
||
用例目的 |
测试用户或操作员登录系统时功能是否正常 |
||
前提条件 |
进入用户登录页面或操作员登录页面 |
||
输入条件 |
预期输出 |
实际情况 |
|
各项信息不予填写,直接点击登陆按钮 |
不允许登录,提示填写账号相关信息 |
一致 |
|
填写错误的登录名或密码后点击登录系统 |
提示用户名或密码错误,要求重新填写进行登录 |
一致 |
|
填写与验证码信息不一致的信息 |
系统显示出提示信息,表明验证码错误,要求重新填写 |
一致 |
下表是就业信息管理功能的测试用例,检测了就业信息管理中对就业信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表6-2 就业信息管理的测试用例
功能描述 |
用于就业信息管理 |
|
测试目的 |
检测就业信息管理时的各种操作的运行情况 |
|
测试数据以及操作 |
预期结果 |
实际结果 |
点击添加就业信息,必填项合法输入,点击保存 |
提示添加成功 |
与预期结果一致 |
点击添加就业信息,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
点击修改就业信息,必填项修改为空,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
点击修改就业信息,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
点击删除就业信息,选择就业信息删除 |
提示删除成功 |
与预期结果一致 |
点击搜索就业信息,输入存在的就业信息名 |
查找出就业信息 |
与预期结果一致 |
点击搜索就业信息,输入不存在的就业信息名 |
不显示景点 |
与预期结果一致 |
下表是平均工资管理功能的测试用例,检测了平均工资管理中对平均工资信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表6-3 平均工资管理的测试用例
功能描述 |
用于平均工资管理 |
|
测试目的 |
检测平均工资管理时的各种操作的运行情况 |
|
测试数据以及操作 |
预期结果 |
实际结果 |
点击添加平均工资,必填项合法输入,点击保存 |
提示添加成功 |
与预期结果一致 |
点击添加平均工资,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
点击修改平均工资,必填项修改为空,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
点击修改平均工资,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
点击删除平均工资,选择平均工资删除 |
提示删除成功 |
与预期结果一致 |
点击搜索平均工资,输入存在的平均工资名 |
查找出平均工资 |
与预期结果一致 |
点击搜索平均工资,输入不存在的平均工资名 |
不显示平均工资 |
与预期结果一致 |
使用阿里云PTS(Performance Testing Service)性能测试服务对线上系统进行压力测试。线上服务器环境为:1核心CPU,1G内存,1Mbps公网带宽,Centos7.0操作系统。
压测过程中使用了2台并发机器,每台机器20个用户并发,对系统主页,登录,数据查询和数据维护等模块进行并发访问,测试结果是有40个用户并发时,数据管理相关页面的响应时间甚至达到了7s,通过查看服务器出网流量发现已经达到1381kb/s,可以看出服务器的带宽已经达到峰值,如果系统使用5Mbps的带宽,系统的响应时间和TPS将会大大增加。在整个测试的过程中,CPU的使用率占用仅8%,也提现出带宽瓶颈对系统的影响非常严重。
随着计算机互联网技术的迅猛发展,各行各业都已经实现采用计算机相关技术对日益放大的数据进行管理。本次毕业论文的主要是利用Python+MySQL开发一个安全可靠,操作简易,同时具备业务可扩展的学生就业管理系统。本文详细的论述了学生就业管理系统的设计和开发,本系统的所有事务逻辑都是按照系统的需求分析进行设计的,系统有学生用户和系统管理员两种角色,本系统多处采用了Ajax的异步交互技术,同时它也叫异步交互技术,利用它我们可以让网页的局部进行数据刷新操作,Ajax和传统的数据更新技术大大增加了客户的体验程度,由于是对局部进行操作那么就减少了一些繁琐而又不必要的操作,减轻了服务器对页面解析的负担。
与其他系统相比,本系统有自身的优点,
例如:
(1)创新性强;
(2)业务逻辑性强,安全性高,在一些重要的功能模块需要通过审查之后才可使用;
(3)移植性高,在所有Window平台都可使用。
当然也还有很多需要进一步改进的地方:
(1)系统大多数页面都是全局刷新,缺乏局部刷新,这将增加服务器的压力,如果有大量用户在同一时间段操作同一个功能模块,可能会导致查询缓慢;
(2)页面没有经过专业的UI设计,美观程度不及其他市场其他网站系统,有待改善。
系统投入运行时,各功能均运行正常。系统的每个界面的操作符合常规逻辑,对使用者来说操作简单,界面友好。整个系统的各个功能设计合理,体现了人性化。
但是由于自己在系统开发过程中对一些用到的相关知识和技术掌握不够牢固,再加上自身开发经验欠缺,因此系统在有些方面的功能还不够完善,考虑的不够全面,因此整个系统还有待日后逐步完善。
[1]许灼灼.基于Python语言的标识符自主练习程序设计与实现[J].电脑编程技巧与维护,2023(01):48-49+75.DOI:10.16184/j.cnki.comprg.2023.01.030.
[2]韦韫韬,王晓娟,薛佳楣,王超,王锐.混合式教学模式中形成性考核评价体系的应用研究——以Python语言程序设计课程为例[J].电脑知识与技术,2023,19(01):172-174.DOI:10.14004/j.cnki.ckt.2023.0024.
[3]曾文敬,徐长文,肖建华,范卫星,赵璇,曾先进,陈建龙.基于Django框架的江西地震目录数据可视化系统设计及实现[J].四川地震,2022(04):37-40+45.DOI:10.13716/j.cnki.1001-8115.2022.04.007.
[4]朱烁.基于数据挖掘技术的高校学生就业信息管理系统的设计[J].信息记录材料,2022,23(11):220-222.DOI:10.16009/j.cnki.cn13-1295/tq.2022.11.066.
[5]贺冰心.基于Web平台的高职院校学生就业信息管理系统设计[J].中国新技术新产品,2022(20):42-45.DOI:10.13612/j.cnki.cntp.2022.20.035.
[6]袁玉稳. 带学生就业信息管理系统图形用户界面的手机(GUI)[P]. 山东省:CN307511384S,2022-08-23.
[7]林彬,杨彬彬,孙芳.基于Django框架的高校就业信息可视化平台的设计与实现[J].辽宁师范大学学报(自然科学版),2022,45(02):201-208.
[8]Yan Qilin. Real-Time Analysis of Youth Emotion Based on Python Language and Smart Sensor Network[J]. Mobile Information Systems,2022,2022.
[9]吴飞,石兰,马梅兰,王江,何新宇,依明·苏来曼.基于Django框架的肉羊遗传评估系统的设计[J].中国畜牧杂志,2022,58(11):127-131.DOI:10.19556/j.0258-7033.20211111-05.
[10]郭瀚亭.基于Django框架的文件分享平台的设计与开发[J].信息记录材料,2022,23(03):139-141.DOI:10.16009/j.cnki.cn13-1295/tq.2022.03.075.
[11]Mathieu Didier. Erratum: Modeling Sensitivities of Energetic Materials using the Python Language and Libraries[J]. Propellants, Explosives, Pyrotechnics,2022,47(2).
[12]张雪敏. 基于B/S模式的学生实习与就业管理系统设计与实现[D].苏州大学,2019.DOI:10.27351/d.cnki.gszhu.2019.003510.
[13]贾建萍.高校学生就业管理系统设计与实现[J].劳动保障世界,2019(14):14.
[14]刘瑜琪,宋嘉祎.基于B/S的高校学生就业管理系统的设计与实现[J].信息与电脑(理论版),2019(09):83-84.
[15]罗青. 云南国防工业职业技术学院毕业生就业管理系统研究与分析[D].云南大学,2018.
[16]宋艳梅,唐基元,王利军.关联规则在学生就业管理系统中的应用[J].电脑知识与技术,2017,13(12):205-206.DOI:10.14004/j.cnki.ckt.2017.1483.
[17]毛俊,孟利民,彭宏. 基于Django框架的车辆定位管理系统的设计和实现[C]//.第二届亚太地区信息论学术会议论文集.,2011:37-39.
本次设计历时3个月。在这个毕业设计中,它离不开指导教师的指导,使事情基本顺利。指导老师无论是在毕业设计历经中,还是在论文做完中都给了了我特别大的助益。另1个方面,教师认真负责的工作姿态,谨慎的教学精神厚重的理论水准都使我获益匪浅。他勤恳谨慎的教学育人学习姿态也给我留下了特别特别深的感觉。我从老师那里学到了很多东西。在理论和实践中,我的技能得到了特别大的提高。在此,特向教师表示由衷的感激。
经过对该毕业设计的全部研究和开发,我的系统研发经历了从需求分析到实现详细功能,再到最终测试和维护的特殊进展。让我对系统研发有了更深层次的认识。如今我的动手本领单独处理疑惑的本领也获取到了特别大的演练学习增多,这是这次毕业设计最好的收获。
最后,在整个系统开发过程中,我周围的同学和朋友给了我很多意见,所以我很快就确认了系统的商业思想。在次,我由衷的向他们表示感激。