本论文主要论述了如何使用Django开发一个校园宿舍管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述校园宿舍管理系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计。
校园宿舍管理系统包含了个人信息管理、系统用户管理、宿舍信息管理、寝室信息管理、公告信息管理、报修信息管理、学生考勤管理、宿舍申请管理等等业务功能,校园宿舍管理系统采用python语言技术,Django框架,基于MySQL开发。实现了,本系统具有良好的兼容性和适应性,为用户提供更多的校园宿舍管理信息,也提供了良好的平台,从而提高系统的核心竞争力。
本文首先介绍了设计的背景和研究现状,然后介绍了系统的相关技术,重点介绍了系统功能分析和详细设计,最后总结了系统的开发经验。
关键词:Django ;mysql数据库;校园宿舍管理系统
Abstract
This paper mainly discusses how to develop a campus dormitory management system using Django. The system will strictly follow the software development process for each stage of work, using B/S architecture and object-oriented programming ideas for project development. In the introduction, the author will discuss the current background of the campus dormitory management system and the purpose of system development. Subsequent chapters will strictly follow the software development process to analyze and design the system at each stage.
The campus dormitory management system includes personal information management, system user management, dormitory information management, dormitory information management, announcement information management, repair information management, student attendance management, dormitory application management, and other business functions. The campus dormitory management system adopts Python language technology, Django framework, and is developed based on MySQL. Implemented, this system has good compatibility and adaptability, providing users with more campus dormitory management information and a good platform, thereby improving the core competitiveness of the system.
This paper first introduces the design background and research status, then introduces the relevant technology of the system, focusing on the system functional analysis and detailed design, and finally summarizes the development experience of the system.
Keywords: Django; MySQL database; Campus dormitory management system
目 录
表announcement_information (公告信息)
表repair_request_information (报修信息)
1 绪论
1.1研究背景
互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。在中国,在线管理的兴起也在迅速发展。为了适应现代人强烈的时间意识,在高校,大量的宿舍管理信息无法及时共享,学生们无从了解宿舍的管理信息情况,造成各方面的不方便,学生在遇到报修问题的时候,没有办法第一时间进行报修,对于宿舍申请、寝室信息、公告信息等也不能及时查看等。因此,建立校园宿舍管理系统,针对校园宿舍管理过程中的各项事宜建立电子台账,实现线上流程审批,在很大程度上能够增加宿舍管理员和学生的效率。本网站中,学生可以以最方便的形式,在最短的时间内查找最多的校园宿舍管理信息,进行报修申请、提交宿舍申请等操作。因此,系统无疑给人们的生活带来了极大的方便,网络的应用让时间和距离不再是局限。
通过校园宿舍管理系统的研究可以更好地理解系统开发的意义,而且也有利于发展更多的智能系统,解决了人才的供给和需求的平衡问题,校园宿舍管理系统的开发建设,由于其开发周期短,维护方便,所以它可以适应校园宿舍管理系统体系基本要求。
1.2研究现状
目前我国各行各业的信息化建设开展得如火如荼,这种信息化的发展已经影响到了各个学校。学校在对学生宿舍进行管理时,学生宿舍的管理一直都是很麻烦的事情,不仅仅管理起来不易修改和更新,而且学生需要了解本宿舍的信息时,也需要去学校宿舍处找专门人员。由于这些操作的繁琐性,校园宿舍管理系统的开发成为各个学校必须的事情,特别是各个高校。
然而目前许多校园宿舍管理系统在使用时,效率低下容易出错,学生、宿管资料不易整理,大量丢失,这些无疑都已成为管理学生宿舍的障碍。这就要求学校能够建立高效的宿舍管理系统,对学生的宿舍、管理等操作及流程进行规范化管理,简化业务流程,提高工作效率并防止中间的漏洞;迅速、准确地捕捉用户要求,并加以高效回应。同时需要不断完善系统,增加模块,更好的满足用户需求,简化宿舍人员的管理工作,尽量做到一切信息化。
1.3研究内容
该校园宿舍管理系统的开发和设计施根据用户的实际情况出发,对系统的需求进行了详细的分析,然后进行系统的整体设计,最后通过测试使得系统设计的更加完整,可以实现系统中所有的功能,在开始编写论文之前亲自到图书馆借阅相关书籍,mysql数据库书籍等编程书籍,然后针对开发的校园宿舍管理系统,去网上查找了很多别人做好的系统,参照他们的设计结果,来对自己的系统进行更加详细的系统的设计,将系统中所有的功能结果一一列举出来,然后进行需求分析,最后对所有的功能模块进行编码,最后完成系统的整体测试,实现系统的正常运行。
这次编写的论文包含了6个部分的内容,具体内容如下:
第一部分绪论:文章主要从课题背景以及研究现状综合阐述了开发此系统的必要性。
第二部分相关技术:系统开发用到的各种技术都大致做出了简介。
第四部分系统分析:对系统的可行性分析以及对所有功能需求进行详细的分析,来查看该系统是否具有开发的可能。
第四部分系统设计:功能模块设计和数据库设计这两部分内容都有专门的表格和图片表示。
第五部分系统实现:进行系统主要功能模块的界面展示。
2相关技术介绍
2.1开发技术说明
本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于python的Django框架进行开发。
前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。
后端部分:采用Django作为开发框架,同时集成Redis等相关技术。
2.2 MVVM模式介绍
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
2.3HTML网页技术
HTML是一种制作网页的常用语言,它一般是用于制作静态页面。它的命令是可以体现文字信息、链接信息、图形信息和表格信息等等。现在它被大众普遍接受广泛应用在网络上。
2.4 Django框架介绍
Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Django框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:
2.4.1 用于创建模型的对象关系映射;
2.4.2 为最终用户设计较好的管理界面;
2.4.3 URL 设计;
2.4.4 设计者友好的模板语言;
2.4.5 缓存系统。
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位,被认为是该领域的佼佼者。
2.5 Mysql数据库
Mysql 经过多次的更新,功能层面已经非常的丰富和完善了,从Mysql4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的Mysql支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷。
针对本文中设计的校园宿舍管理系统在实际的实现过程中,最终选择Mysql数据库的主要原因在于在企业的应用系统应用及开发的过程中会存在大量的数据库比较频繁的操作,而且数据的安全性要求也是非常的高。综合这些因素,最终选择安全性系数比较高的Mysql来对校园宿舍管理系统后台数据进行存储操作。
3 系统分析
3.1 可行性分析
在系统开发之初要进行系统可行分析,这样做的目的就是使用最小成本解决最大问题,一旦程序开发满足用户需要,带来的好处也是很多的。下面我们将从技术上、操作上、经济上等方面来考虑这个系统到底值不值得开发。
3.1.1 技术可行性
本校园宿舍管理系统采用Django框架、python编程语言和mysql数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较系统,所以技术开发上面还是有一定把握。
3.1.2经济可行性
我在设计该系统的时候主要是从节约成本出发,然后进行具体的系统的设计,在系统的设计过程中由于采用的所有工具以及技术支持全部都是免费的,因此不需要有任何的成本就可以进行该系统的设计。所用到的所有资源都是免费的,只要有网络就可以进行下载使用,不需要支付相应的费用,因此该项目在经济方面是完全可以实行的。
3.1.3操作可行性
本人自己就是学生,程序开发经验不足,在界面设计上面不会设计太复杂,要讲究简单好看,操作上要方便,不能让用户觉得不流畅。用户一旦进入操作界面,界面上就会有相应提示,跟着操作提示就可以找到对应的功能操作模块,对于用户来说免培训就能使用。
从上面几个部分的可行性分析得出,这次开发的校园宿舍管理系统在开发上面没有什么大问题,值得开发。
3.2 系统性能分析
(1)系统响应效率:页面响应时问应该在3秒以内,最长不能超过4秒,并支持至少10000人同时在线所有系统。
(2)界面简洁清晰:系统界面要求简单明了,容易操作,符合用户操作习惯。
(3)储存性高:因为校园宿舍管理系统中有很多的信息需要存储,因此对于系统的存储量有很大的要求,需要有一个强大的数据库的支持才能确保所有的信息都能安全稳定的进行存储。
(4)易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。
(5)稳定性需求:开发的校园宿舍管理系统要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。
(6)稳定性:开发的校园宿舍管理系统要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。
3.3 系统功能分析
本校园宿舍管理系统主要包括四大功能模块,即管理员、学生用户、维修用户、教师用户用户模块。
(1)管理员模块:系统中的核心用户是系统管理员,管理员登录后,通过管理员菜单来管理系统。主要功能有:后台首页、系统用户(管理员、学生用户、教师用户)模块管理(公告信息、宿舍信息、寝室信息、报修信息、学生考勤、宿舍申请)个人信息等功能。管理员用例图如图3-1所示。
![](https://i-blog.csdnimg.cn/blog_migrate/e815f74fd666ee04b0799ebb73d20df3.png)
图3-1 管理员用例图
(2)学生用户:后台首页、模块管理(模块管理(公告信息、宿舍信息、寝室信息、报修信息、学生考勤、宿舍申请)个人信息等功能。学生用例如图3-2所示。
![](https://i-blog.csdnimg.cn/blog_migrate/4c33977937f92833c7db6fffa5b5223d.png)
图3-2学生用例图
(3)教师用户:后台首页、模块管理(公告信息、宿舍信息、寝室信息、学生考勤)个人信息等功能。教师用户用例图如图3-3所示。
![](https://i-blog.csdnimg.cn/blog_migrate/5301d95282a71dbd571d0d1dc9b01c02.png)
图3-3教师用户用例图
3.4系统流程分析
3.4.1登录流程
登录模块主要满足管理员以及用户的权限登录,用户登录流程图如图3-4所示。
![](https://i-blog.csdnimg.cn/blog_migrate/b768d87fe435c8197bedc7117d8a329e.png)
图3-4 登录流程图
3.4.2注册流程
未有账号的用户可进入注册界面进行注册操作,用户注册流程图如图3-5所示。
![](https://i-blog.csdnimg.cn/blog_migrate/8611dfd26326ff2c86b4c2be324b1017.png)
图3-5 注册流程图
3.4.3添加信息流程
用户在添加信息时,信息编号自动生成,系统会对添加的信息进行验证,验证通过则添加至数据库,添加信息成功,反之添加失败。添加信息流程如图3-6所示。
![](https://i-blog.csdnimg.cn/blog_migrate/c156343bb0a894bf21bef2ab45325cad.png)
图3-6 添加信息流程图
3.4.4删除信息流程
用户可选择要删除的信息进行信息删除操作,在删除信息时系统提示是否确定删除信息,是则删除信息成功,系统数据库将信息进行删除。删除信息流程图如图3-7所示。
![](https://i-blog.csdnimg.cn/blog_migrate/d507f43b1d591f65e53b86dfd1adef24.png)
4 系统设计
4.1系统概要设计
本校园宿舍管理系统选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图4-1所示:
![](https://i-blog.csdnimg.cn/blog_migrate/42bd698e3fd9efa63e757a761647f460.png)
图4-1 系统工作原理图
4.2系统结构设计
整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计。
本校园宿舍管理系统结构图如图4-2所示。
![](https://i-blog.csdnimg.cn/blog_migrate/b83268ba2b018763e2bd0183cb3a5ff2.png)
图4-2 系统功能结构图
4.3系统顺序图设计
4.3.1登录模块顺序图
登录模块主要满足了管理员以及用户的权限登录,登录模块顺序图如图4-3所示。
![](https://i-blog.csdnimg.cn/blog_migrate/d1bc8927d32f1a825207c268bb007988.png)
图4-3 登录顺序图
4.3.2添加信息模块顺序图
管理员以及用户登录后均可进行添加信息操作,添加信息模块顺序图如图4-4所示。
![](https://i-blog.csdnimg.cn/blog_migrate/8492a941d0d02db2d8c556a85af8e639.png)
图4-4 添加信息顺序图
4.4数据库设计
一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计[12]。
4.4.1数据库E-R图设计
本校园宿舍管理系统采用的是mysql数据库,数据存储快,因为校园宿舍管理系统,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确,系统的E-R图如下图所示:
(1) 管理员登录信息实体属性图如下图4-5所示
![](https://i-blog.csdnimg.cn/blog_migrate/bced2fb4e8bdb9d444f49b8478b70804.png)
图4-5管理员登录信息实体属性图
(2)学生注册实体属性如下图4-6所示
![](https://i-blog.csdnimg.cn/blog_migrate/3a2652978e95beb83f8f5eeff4d8c56f.png)
图4-6学生注册实体属性图
3、寝室信息实体图如图4-7所示:
![](https://i-blog.csdnimg.cn/blog_migrate/8a9677b685f6f254cfa971540968415d.png)
图4-7寝室信息实体图
4.4.2数据库表设计
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
表access_token (登陆访问时长)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID |
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 |
|
3 |
info |
text |
65535 |
0 |
Y |
N |
||
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
表announcement_information (公告信息)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
announcement_information_id |
int |
10 |
0 |
N |
Y |
公告信息ID |
|
2 |
announcement_title |
varchar |
64 |
0 |
Y |
N |
公告标题 |
|
3 |
announcement_label |
varchar |
64 |
0 |
Y |
N |
公告标签 |
|
4 |
date_of_announcement |
date |
10 |
0 |
Y |
N |