django大学生宿舍管理信息系统-毕业设计源码62001

摘要

在信息化社会中,人们需要针对不同类型的信息有针对性地获取途径。然而,信息获取途径的扩展一直是人们努力的方向,由于站在不同角度存在偏差,人们常常能够获得不同类型的信息,这也是技术难以攻克的问题之一。

针对大学宿舍管理等问题,研究并分析大学宿舍管理情况,然后开发设计大学生宿舍管理信息系统以解决这些问题。大学生宿舍管理信息系统的主要功能模块包括系统用户管理、购置申请管理、入住信息管理、宿舍信息管理、报修信息管理、退宿记录管理、安全信息管理、安全反馈管理、卫生评分管理、公告通知管理等。该系统采用面向对象的开发模式进行软件开发和硬件架设,使用Python的Django技术构建,并采用MySQL作为后台数据的存储单元。

本研究首先分析了大学生宿舍管理信息系统的背景和意义,为研究工作的合理性提供了基础。然后针对系统的需求和技术问题进行了分析,证明了系统的必要性和技术可行性。接着介绍了设计系统所需使用的技术软件和设计思想。最后实现了大学生宿舍管理信息系统并部署运行,以便于系统的使用。

通过开发设计大学生宿舍管理信息系统,可以有效解决大学宿舍管理中的问题,并提供便捷的信息管理和流程控制。这将提高大学宿舍管理的效率和准确性,提升管理水平,为学生提供更好的居住环境和服务。

关键词:宿舍管理;python语言;django框架;Mysql数据库

Abstract

In the information society, people need to have targeted access to different types of information. However, the expansion of information acquisition channels has always been the direction of people's efforts. Due to deviations from different perspectives, people often have access to different types of information, which is also one of the problems that technology is difficult to overcome.

Research and analyze the management of college dormitories, and then develop and design a college dormitory management information system to address these issues. The main functional modules of the college student dormitory management information system include system user management, purchase application management, check-in information management, dormitory information management, repair information management, check-out record management, safety information management, safety feedback management, hygiene score management, announcement notification management, etc. The system adopts an object-oriented development model for software development and hardware setup, built using Python's Django technology, and uses MySQL as the storage unit for backend data.

This study first analyzed the background and significance of the college student dormitory management information system, providing a basis for the rationality of the research work. Then, an analysis was conducted on the system's requirements and technical issues, proving the necessity and technical feasibility of the system. Then, the technical software and design ideas required for designing the system were introduced. Finally, the college student dormitory management information system was implemented and deployed for easy use.

By developing and designing a college dormitory management information system, problems in college dormitory management can be effectively solved, and convenient information management and process control can be provided. This will improve the efficiency and accuracy of university dormitory management, enhance management level, and provide better living environment and services for students.

Keywords:Dormitory management; Python language; Django framework; MySQL database

 目录

摘要

Abstract

第1章 引 言

1.1 开发背景

1.2 研究现状

第2章 系统需求分析

2.1 系统可行性分析

2.1.1 技术可行性分析

2.1.2 经济可行性分析

2.1.3 操作可行性分析

2.2 系统需求分析

2.2.1 功能需求分析

2.2.2 非功能性需求分析

2.3 系统用例分析

第3章 系统设计

3.1 系统功能模块设计

3.2 数据库设计

3.2.1 数据库概念结构设计

3.2.2 数据库逻辑结构设计

第4章 关键模块的设计与实现

4.1 登录模块

4.2 注册模块

4.3 首页模块

4.4 用户管理模块

4.5 宿舍信息管理模块

4.6 安全信息管理模块

4.7 入住信息管理模块

4.8 报修信息管理模块

第5章 系统测试

5.1 测试的目的

5.2 系统部分测试

5.3 系统测试结果

第6章 结语

参考文献

结束语

第1章 引 言

    1. 开发背景

随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构(或部门)的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。

对于学校而言,学生宿舍管理是必不可少的组成部分。目前仍然存在有学校停留在宿舍管理部门人员手工记录数据的阶段,手工记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时,由于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低。采用计算机来管理宿舍和学生的信息,大大提高了查询的速度,节约了人力和物力资源,达到了预期的要求。今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:

第一,计算机可以代替人工进行许多繁杂的劳动;

第二,计算机可以节省许多资源;

第三,计算机可以大大的提高人们的工作效率;

第四,计算机可以使敏感文档更加安全,等等.

    1. 研究现状

目前我国各行各业的信息化建设开展得如火如荼,这种信息化的发展已经影响到了各个学校。学校在对学生宿舍进行管理时,学生宿舍的管理一直都是很麻烦的事情,不仅仅管理起来不易修改和更新,而且学生需要了解本宿舍的信息时,也需要去学校宿舍处找专门人员。由于这些操作的繁琐性,大学生宿舍管理信息系统的开发成为各个学校必须的事情,特别是各个高校。

然而目前许多大学生宿舍管理信息系统在使用时,效率低下容易出错,学生、宿管资料不易整理,大量丢失,这些无疑都已成为管理学生宿舍的障碍。这就要求学校能够建立高效的宿舍管理系统,对学生的宿舍、管理等操作及流程进行规范化管理,简化业务流程,提高工作效率并防止中间的漏洞;迅速、准确地捕捉用户要求,并加以高效回应。同时需要不断完善系统,增加模块,更好的满足用户需求,简化宿舍人员的管理工作,尽量做到一切信息化。

第2章 系统需求分析

大学生宿舍管理信息系统存储所使用的是Mysql数据库以及开发中所使用的是pycharm、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用django框架进行开发,使系统的可扩展性和维护性更佳,减少python配置代码,简化编程代码,目前django框架也是很多用户选择的框架之一。

      1. 经济可行性分析

在开发大学生宿舍管理信息系统中所使用的开发软件像pycharm开发工具、Tomcat服务器、MySQL数据库、Photoshop图片处理软件等,这些都是开源免费的,这些环境在学校都进行了系统的学习,自己能够独立操作完成,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。

      1. 操作可行性分析

此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。

    1. 系统需求分析
      1. 功能需求分析

大学生宿舍管理信息系统的设计与实现是为了让系统管理员可以对系统用户、购置申请管理、入住信息管理、宿舍信息管理、报修信息管理、退宿记录管理、安全信息管理、安全反馈管理、卫生评分管理、公告通知管理等进行统一的管理。学生可以查看购置申请管理、入住信息管理、宿舍信息管理、报修信息管理、退宿记录管理、安全信息管理、安全反馈管理、卫生评分管理、公告通知管理等。具体如下:

学生用户端:

(1)注册登录:当用户想要对系统中所实现的功能进行查询管理的时候,就必须进行登录到系统当中,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,用户的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录。

(2)公告通知:点击“公告通知列表”这个菜单,可以查看到系统中所有添加的公告通知,如果想要了解某一公告通知的详细信息,点击后面的“详情”会进入详情查看界面。

(3)安全反馈:点击“安全反馈”这个按钮可以查看到自己所有的安全的反馈,支持通过宿舍编号或者宿舍楼号进行查询安全反馈信息;

(4)报修信息:点击“报修信息列表”这个按钮可以查看到自己提交的报修信息,支持通过报修编号或者宿舍编号进行查询报修信息,如果想要了解某一报修信息的详细信息,点击后面的“查看”会进入详情界面。

(5)宿舍信息:点击“宿舍信息列表”这个菜单,可以查看到系统中所有添加的宿舍信息,支持通过宿舍封面或者楼层对宿舍信息进行查询,如果想要了解某一宿舍的详细信息,点击后面的“详情”会进入详情界面,如果想要选择某一宿舍,点击“分配入住、卫生评分”按钮,根据提示填写对应的信息,点击“提交”按钮,信息没有错题在数据库就会提交成功,“分配入住、卫生评分”成功。

管理员端:

(1)系统用户:管理员点击“系统用户”这一菜单会显示管理员+学生用户这两个子菜单,管理员可以对这两个角色的信息进行增删改查操作。

(2)宿舍信息:管理员点击“宿舍信息”菜单可以对宿舍信息进行增删改查,也可以点击后面的“分配入住”、“卫生评分”按钮对宿舍信息的分配入住/卫生评分信息进行更新维护。

(3)安全信息:管理员点击“安全信息”菜单可以对安全信息进行增删改查。

(4)购置申请:管理员点击“购置申请”菜单可以对购置申请进行管控。

(5)退宿申请管理:管理员点击“退宿申请管理”菜单可以对退宿申请进行增删改查,也可以点击后面的“确认”按钮对宿舍信息的确认信息进行更新维护。

(6)安全反馈:管理员点击“安全反馈”菜单可以对安全反馈进行管控。

      1. 非功能性需求分析

大学生宿舍管理信息系统的非功能性需求比如大学生宿舍管理信息系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:

2.1 大学生宿舍管理信息系统非功能需求表

安全性

主要指大学生宿舍管理信息系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指大学生宿舍管理信息系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响大学生宿舍管理信息系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着大学生宿舍管理信息系统的页面展示内容进行操作,就可以了。

可维护性

大学生宿舍管理信息系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

    1. 系统用例分析

大学生宿舍管理信息系统学生用户角色用例图如图2.1所示:

图2.1学生用户角色用例图

大学生宿舍管理信息系统中管理员用户用例图如图2.2所示:

图2.2 管理员用例图

  1. 系统设计

    1. 系统功能模块设计

系功能模块分成了管理员和学生用户个模块,每个模块登录进去对应相应的功能,具体的功能模块图如图3.1所示。

图3.1 大学生宿舍管理信息系统功能模块图

    1. 数据库设计

数据库的设计承载者系统的各种数据,在建立数据库的时候,主要是数据库模型的设计以及各个数据库表的设计两部分。

      1. 数据库概念结构设计

下面是整个大学生宿舍管理信息系统中主要的数据库表总E-R实体关系图。

图3.2 大学生宿舍管理信息系统总E-R关系图

      1. 数据库逻辑结构设计

通过前面E-R关系图可以看到项目需要创建很多个数据表。以下是项目中的主要数据库表的关系模型:

表announcement_notice (公告通知)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

announcement_notice_id

int

10

0

N

Y

公告通知ID

2

announcement_title

varchar

64

0

Y

N

公告标题

3

release_date

date

10

0

Y

N

发布日期

4

announcement_content

longtext

2147483647

0

Y

N

公告内容

5

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表application_for_check_out (退宿申请)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

application_for_check_out_id

int

10

0

N

Y

退宿申请ID

2

check_out_number

varchar

64

0

Y

N

退宿编号

3

dormitory_number

varchar

64

0

Y

N

宿舍编号

4

dormitory_building_number

varchar

64

0

Y

N

宿舍楼号

5

dormitory_cover

varchar

255

0

Y

N

宿舍封面

6

floor

varchar

64

0

Y

N

楼层

7

student_users

int

10

0

Y

N

0

学生用户

8

student_id

varchar

64

0

N

N

学生学号

9

student_name

varchar

64

0

Y

N

学生姓名

10

student_gender

varchar

64

0

Y

N

学生性别

11

grade_class

varchar

64

0

Y

N

年级班级

12

number_of_occupants

varchar

64

0

Y

N

入住人数

13

reason_for_check_out

text

65535

0

Y

N

退宿原因

14

examine_state

varchar

16

0

N

N

未审核

审核状态

15

examine_reply

varchar

16

0

Y

N

审核回复

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表check_in_information (入住信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

check_in_information_id

int

10

0

N

Y

入住信息ID

2

dormitory_number

varchar

64

0

Y

N

宿舍编号

3

dormitory_building_number

varchar

64

0

Y

N

宿舍楼号

4

dormitory_cover

varchar

255

0

Y

N

宿舍封面

5

floor

varchar

64

0

Y

N

楼层

6

dormitory_equipment

text

65535

0

Y

N

宿舍设备

7

student_users

int

10

0

Y

N

0

学生用户

8

student_id

varchar

64

0

N

N

学生学号

9

student_name

varchar

64

0

Y

N

学生姓名

10

student_gender

varchar

64

0

Y

N

学生性别

11

grade_class

varchar

64

0

Y

N

年级班级

12

number_of_occupants

varchar

64

0

Y

N

入住人数

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表check_out_record (退宿记录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

check_out_record_id

int

10

0

N

Y

退宿记录ID

2

check_out_number

varchar

64

0

N

N

退宿编号

3

dormitory_number

varchar

64

0

Y

N

宿舍编号

4

dormitory_building_number

varchar

64

0

Y

N

宿舍楼号

5

dormitory_cover

varchar

255

0

Y

N

宿舍封面

6

floor

varchar

64

0

Y

N

楼层

7

student_users

int

10

0

Y

N

0

学生用户

8

student_id

varchar

64

0

Y

N

学生学号

9

student_name

varchar

64

0

Y

N

学生姓名

10

student_gender

varchar

64

0

Y

N

学生性别

11

grade_class

varchar

64

0

Y

N

年级班级

12

number_of_occupants

varchar

64

0

Y

N

入住人数

13

reason_for_check_out

text

65535

0

Y

N

退宿原因

14

settlement_fees

int

10

0

Y

N

0

结算费用

15

pay_state

varchar

16

0

N

N

未支付

支付状态

16

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

17

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表dormitory_information (宿舍信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

dormitory_information_id

int

10

0

N

Y

宿舍信息ID

2

dormitory_number

varchar

64

0

N

N

宿舍编号

3

dormitory_building_number

varchar

64

0

Y

N

宿舍楼号

4

dormitory_cover

varchar

255

0

Y

N

宿舍封面

5

floor

varchar

64

0

Y

N

楼层

6

empty_beds

int

10

0

Y

N

0

空床位

7

dormitory_equipment

text

65535

0

Y

N

宿舍设备

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hygiene_score (卫生评分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hygiene_score_id

int

10

0

N

Y

卫生评分ID

2

dormitory_number

varchar

64

0

Y

N

宿舍编号

3

dormitory_building_number

varchar

64

0

Y

N

宿舍楼号

4

dormitory_cover

varchar

255

0

Y

N

宿舍封面

5

floor

varchar

64

0

Y

N

楼层

6

rating_date

date

10

0

Y

N

评分日期

7

hygiene_score

int

10

0

Y

N

0

卫生分数

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表purchase_application (购置申请)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

purchase_application_id

int

10

0

N

Y

购置申请ID

2

application_number

varchar

64

0

Y

N

申请编号

3

dormitory_number

varchar

64

0

Y

N

宿舍编号

4

dormitory_building_number

varchar

64

0

Y

N

宿舍楼号

5

dormitory_cover

varchar

255

0

Y

N

宿舍封面

6

floor

varchar

64

0

Y

N

楼层

7

dormitory_equipment

text

65535

0

Y

N

宿舍设备

8

student_users

int

10

0

Y

N

0

学生用户

9

student_id

varchar

64

0

Y

N

学生学号

10

student_name

varchar

64

0

Y

N

学生姓名

11

grade_class

varchar

64

0

Y

N

年级班级

12

purchase_items

varchar

64

0

Y

N

购置物品

13

reason_for_application

text

65535

0

Y

N

申请原因

14

examine_state

varchar

16

0

N

N

未审核

审核状态

15

examine_reply

varchar

16

0

Y

N

审核回复

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表repair_information (报修信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

repair_information_id

int

10

0

N

Y

报修信息ID

2

repair_number

varchar

64

0

Y

N

报修编号

3

dormitory_number

varchar

64

0

Y

N

宿舍编号

4

dormitory_building_number

varchar

64

0

Y

N

宿舍楼号

5

dormitory_cover

varchar

255

0

Y

N

宿舍封面

6

floor

varchar

64

0

Y

N

楼层

7

dormitory_equipment

text

65535

0

Y

N

宿舍设备

8

student_users

int

10

0

Y

N

0

学生用户

9

student_id

varchar

64

0

Y

N

学生学号

10

student_name

varchar

64

0

Y

N

学生姓名

11

grade_class

varchar

64

0

Y

N

年级班级

12

screenshot_of_repair_request

varchar

255

0

Y

N

报修截图

13

reason_for_repair

text

65535

0

Y

N

报修原因

14

examine_state

varchar

16

0

N

N

未审核

审核状态

15

examine_reply

varchar

16

0

Y

N

审核回复

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表security_feedback (安全反馈)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

security_feedback_id

int

10

0

N

Y

安全反馈ID

2

equipment_number

varchar

64

0

N

N

设备编号

3

device_name

varchar

64

0

Y

N

设备名称

4

equipment_location

varchar

64

0

Y

N

设备位置

5

responsible_person

varchar

64

0

Y

N

负责人

6

contact_phone_number

varchar

64

0

Y

N

联系电话

7

student_users

int

10

0

Y

N

0

学生用户

8

student_name

varchar

64

0

Y

N

学生姓名

9

grade_class

varchar

64

0

Y

N

年级班级

10

feedback_date

date

10

0

Y

N

反馈日期

11

feedback_content

text

65535

0

Y

N

反馈内容

12

examine_state

varchar

16

0

N

N

未审核

审核状态

13

examine_reply

varchar

16

0

Y

N

审核回复

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表security_information (安全信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

security_information_id

int

10

0

N

Y

安全信息ID

2

equipment_number

varchar

64

0

N

N

设备编号

3

device_name

varchar

64

0

Y

N

设备名称

4

running_state

varchar

64

0

Y

N

运行状态

5

equipment_location

varchar

64

0

Y

N

设备位置

6

responsible_person

varchar

64

0

Y

N

负责人

7

contact_phone_number

varchar

64

0

Y

N

联系电话

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表student_users (学生用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

student_users_id

int

10

0

N

Y

学生用户ID

2

student_id

varchar

64

0

N

N

学生学号

3

student_name

varchar

64

0

Y

N

学生姓名

4

student_gender

varchar

64

0

Y

N

学生性别

5

grade_class

varchar

64

0

Y

N

年级班级

6

examine_state

varchar

16

0

N

N

未审核

审核状态

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

4章 关键模块的设计与实现

    1. 登录模块

管理员和学生在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员、教师和学生的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图4.1所示。

图4.1 登录界面图

登录代码如下:

 def Login(self, ctx):

        print("===================登录=====================")

        ret = {

            "error": {

                "code": 70000,

                "message": "账户不存在",

            }

        }

        body = ctx.body

        password = md5hash(body["password"]) or ""

        obj = service_select("user").Get_obj(

            {"username": body["username"]}, {"like": False}

        )

        if obj:

            user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})

            if user_group and user_group['source_table'] != '':

                user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']},                                                                       {"like": False})

                if user_obj['examine_state'] == '未通过':

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "账户未通过审核",

                        }

                    }

                    return ret

                if user_obj['examine_state'] == '未审核':

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "账户未审核",

                        }

                    }

                    return ret

            if obj["state"] == 1:

                if obj["password"] == password:

                    timeout = timezone.now()

                    timestamp = int(time.mktime(timeout.timetuple())) * 1000

                    token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))

                    ctx.request.session[token] = obj["user_id"]

                    service_select("access_token").Add(

                        {"token": token, "user_id": obj["user_id"]}

                    )

                    obj["token"] = token

                    ret = {

                        "result": {"obj": obj}

                    }

                else:

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "密码错误",

                        }

                    }

            else:

                ret = {

                    "error": {

                        "code": 70000,

                        "message": "用户账户不可用,请联系管理员",

                    }

                }

        return ctx.response(json.dumps(ret, ensure_ascii=False))

    1. 注册模块

注册模块满足用户两部分,当用户想要进行资料相关信息的查询管理的时候,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,其主界面展示如下图4.2所示。

图4.2 注册界面图

注册代码如下:

  def Register(self, ctx):

        print("===================注册=====================")

        userService = service_select("user")

        body = ctx.body

        if "username" not in body and body["username"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户名不能为空",

                }

            }, ensure_ascii=False))

        if "user_group" not in body and body["user_group"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户组不能为空",

                }

            }, ensure_ascii=False))

        if "password" not in body and body["password"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "密码不能为空",

                }

            }, ensure_ascii=False))

        post_param = body

        post_param['nickname'] = body["nickname"] or ""

        post_param['password'] = md5hash(body["password"])

        obj = userService.Get_obj({"username": post_param['username']}, {"like": False})

        if obj:

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户名已存在",

                }

            }, ensure_ascii=False))

        ret = {

            "error": {

                "code": 70000,

                "message": "注册失败",

            }

        }

        bl = userService.Add(post_param)

        if bl:

            ret = {

                "result": {

                    "bl": True,

                    "message": "注册成功"

                }

            }

        return ctx.response(json.dumps(ret, ensure_ascii=False))

    1. 首页模块

管理员等会成功以后会在首页界面以分析图的形式查看到系统中的宿舍信息统计、卫生评分统计和安全信息统计信息,界面如下图4.3所示。

图4.3 首页界面图

    1. 用户管理模块

管理员可以对系统中所有的用户角色进行管控,包含了管理员以及学生用户两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。界面如下图4.4所示。

图4.4 用户管理界面图

用户管理关键代码如下:

 def Add(self, ctx):

body = ctx.body

unique = self.config.get("unique")

obj = None

if unique:

qy = {}

for i in range(len(unique)):

key = unique[i]

qy[key] = body.get(key)

obj = self.service.Get_obj(qy)

if not obj:

error = self.Add_before(ctx)

if error["code"]:

return {"error": error}

error = self.Events("add_before", ctx, None)

if error["code"]:

return {"error": error}

result = self.service.Add(body, self.config)

if self.service.error:

return {"error": self.service.error}

res = self.Add_after(ctx, result)

if res:

result = res

res = self.Events("add_after", ctx, result)

if res:

result = res

return {"result": result}

else:

return {"error": {"code": 10000, "message": "已存在"}}

    1. 宿舍信息管理模块

点击“宿舍信息”这个菜单,可以查看到系统中所有添加的宿舍信息,支持通过标题对宿舍信息进行查询,只有管理员用户可以添加新的宿舍信息,点击“添加”按钮,根据提示输入宿舍信息,点击“提交”按钮,新的宿舍信息就在系统中显示出来了,可以对添加的宿舍信息进行删除,也可以点击后面的“分配入住”、“卫生评分”按钮对宿舍信息的分配入住/卫生评分信息进行更新维护。界面如下图4.5所示。

图4.5宿舍信息管理界面图

    1. 安全信息管理模块

管理员和学生用户点击“安全信息列表”这个按钮可以查看到系统中的安全信息,支持通过设备编号或者设备名称或者设备位置进行查询安全信息,如果想要添加新的安全信息,点击“安全信息添加”按钮然后根据提示输入安全信息,点击“提交”后,在安全信息界面就会显示新增的安全信息,可以点击某一安全信息查看安全信息的详情,也可以直接点击“删除”进行删除安全。界面如下图4.6所示。

图4.6 安全信息管理界面图

安全信息管理关键代码如下:

def Del(self, ctx):

if len(ctx.query) == 0:

errorMsg = {"code": 30000, "message": "删除条件不能为空!"}

return errorMsg

result = self.service.Del(ctx.query, self.config)

if self.service.error:

return {"error": self.service.error}

return {"result": result}

    1. 入住信息管理模块

点击“入住信息”这个菜单,可以查看到系统中所有添加的入住信息,支持通过宿舍楼号或者宿舍编号对入住信息进行查询,如果想要了解某一入住信息的详细信息,点击后面的“详情”会进入详情界面,学生和管理员如果想要选择某一入住信息,点击“购置申请、报修、退宿申请”按钮,根据提示填写对应的信息,点击“提交”按钮,信息没有错误在数据库就会提交成功,购置申请/报修/退宿申请成功。界面如下图4.7所示。

图4.7入住信息管理界面图

入住信息管理关键代码如下:

def Set(self, ctx):

error = self.Set_before(ctx)

if error["code"]:

return {"error": error}

error = self.Events("set_before", ctx, None)

if error["code"]:

return {"error": error}

query = ctx.query

if 'page' in query.keys():

del ctx.query['page']

if 'size' in query.keys():

del ctx.query['size']

if 'orderby' in query.keys():

del ctx.query['orderby']

result = self.service.Set(ctx.query, ctx.body, self.config)

if self.service.error:

return {"error": self.service.error}

res = self.Set_after(ctx, result)

if res:

result = res

res = self.Events("set_after", ctx, result)

if res:

result = res

return {"result": result}

    1. 报修信息管理模块

点击“报修信息”这个按钮可以查看到自己提交的报修信息,支持通过报修编号或者宿舍编号或者宿舍楼号或者宿舍封面进行查询报修信息,如果想要了解某一报修信息的详细信息,点击后面的“查看”会进入详情界面;界面如下图4.8所示。

图4.8报修信息管理界面图

报修信息管理关键代码如下:

def Get_list(self, ctx):

query = dict(ctx.query)

config_plus = {}

if "field" in query:

field = query.pop("field")

config_plus["field"] = field

if "page" in query:

config_plus["page"] = query.pop("page")

if "size" in query:

config_plus["size"] = query.pop("size")

if "orderby" in query:

config_plus["orderby"] = query.pop("orderby")

if "like" in query:

config_plus["like"] = query.pop("like")

if "groupby" in query:

config_plus["groupby"] = query.pop("groupby")

count = self.service.Count(query)

lst = []

if self.service.error:

return {"error": self.service.error}

elif count:

lst = self.service.Get_list(query,

obj_update(self.config, config_plus))

if self.service.error:

return {"error": self.service.error}

self.interact_list(ctx, lst)

return {"result": {"list": lst, "count": count}}

  1. 系统测试

    1. 测试的目的

通过前面章节的介绍,我们可以看到大学生宿舍管理信息系统已经完成了,但是能不能投入使用还是未知,因为在每个项目正式使用之前必须对开发的项目进行测试,如果不进行测试一旦投入使用可能会出现很多未可知的问题,比如使用人数太多导致系统瘫痪,比如某一功能存在bug信息填写错误等,这些错误将给使用者带来很多的困扰,甚至造成更大的损失,因此测试是项目投入使用的最后一步,为用户提供一个运行顺畅、完美的项目也就是我们进行最后测试的目的。

    1. 系统部分测试

用户登录功能测试:

表5.1 用户登录功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

用户登录模块测试

用户登录成功的情况

点击前登录界面输入账号和密码分别输入admin和admin后点击“登录”按钮。

登录成功并调整到用户界面

正确

宿舍信息添加功能测试:

表5.2 宿舍信息添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

宿舍信息添加模块测试

宿舍信息添加成功的情况

在宿舍信息的页面中将点击添加,输入宿舍信息相关信息,输入正确的信息后然后点击“提交”按钮。

提示添加成功

正确

宿舍信息添加模块测试

宿舍信息添加失败的情况

在宿舍信息页面中不填写的宿舍楼层,其他信息正常输入“提交”按钮。

提示“添加失败,信息不能为空”

正确

查询报修信息功能模块测试:

表5.3 查询报修信息功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询员工守则功能测试

查询成功的情况

在报修信息界面输入报修编号、宿舍楼号进行查询

查询成功

正确

安全信息添加功能测试:

表5.4 安全信息添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

安全信息添加模块测试

安全信息添加成功的情况

在安全信息添加管理的页面中,输入安全信息,输入正确的信息后然后点击“提交”按钮。

提示添加成功

正确

安全信息添加模块测试

安全信息添加失败的情况

在安全信息页面中不填写的资讯标题,其他信息正常输入“提交”按钮。

提示“添加失败,信息不能为空”

正确

    1. 系统测试结果

通过编写大学生宿舍管理信息系统的测试用例,已经检测完毕用户的登录模块、宿舍信息添加模块、查询报修信息模块、安全信息添加模块的功能测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。

  1. 结语

经过几个月的努力,本大学生宿舍管理信息系统基于Django框架终于完成了。相比以往只参与小型系统开发的经历,这次从需求分析到系统设计、开发和测试的全过程对我来说具有重要意义。

在系统开发初期,我进行了对大学生宿舍管理方面需求的调研,了解了大学生宿舍管理方面的实际需求,以此为基础进行需求分析。接着选择了我较为熟悉的Django框架和MySQL数据库,通过查阅学术文献和图书馆资源等渠道学习相关技术,掌握编程思想和方法。然后,对系统进行了全面分析,包括可行性分析、功能实现、性能要求和操作流程等,确定了系统的最终功能,并进行了功能和数据库的设计。最后,进行系统的实现并进行了充分的功能测试,确保系统能够稳定运行。

在开发过程中,我也暴露出了许多问题。例如,前期准备不充分,无法完全掌握系统的操作流程;在编程过程中,对Django的使用还不够熟练,还存在一些环境配置的问题,导致项目在运行时经常出现错误。然而,我通过查阅资料和向导师请教的方式逐渐解决了这些问题。通过这个项目的开发,我意识到学习永无止境,在以后的学习和工作中,我会更加严谨,不断充实自己的知识储备。

总的来说,本研究意义重大。通过参与大学生宿舍管理信息系统的设计与实现,我积累了宝贵的经验和技能。这次项目开发让我更加深入地理解了需求分析、系统设计和开发过程,并提高了我的编程能力。我相信这些经验将对我未来的学习和职业发展产生长远的影响。

参考文献

  1. 庞达,温家铭,武延鑫等. Django框架在海洋平台甲板片建造管理中的应用研究 [J]. 天津科技, 2023, 50 (11): 56-58+62.
  2. 陈俊. 基于Python的个性化在线学习系统的设计与实现 [J]. 电脑知识与技术, 2023, 19 (28): 37-39.

[3]张小梅,何菊,佘侃侃等. Django框架下的用户鉴权机制分析与研究 [J]. 无线互联科技, 2023, 20 (18): 146-148.

[4]唐军,卢汉利,陆振心等. 学生宿舍管理系统、方法及计算机存储介质[P]. 广西壮族自治区: CN116248726A, 2023-06-09.

[5]张凯睿. 基于Python的学生宿舍管理系统研究 [J]. 电脑编程技巧与维护, 2023, (05): 90-92+109.

[6]张旭宁. 基于ZigBee技术的学生宿舍智能化管理系统的设计 [J]. 信息与电脑(理论版), 2023, 35 (08): 165-168.

[7]Dong F . Discussion on the Teaching Reform of Python Language Programming Course for Engineering Majors Based on OBE [J]. Journal of Big Data and Computing, 2023, 1 (1):

[8]唐瑞明,谭倩芳. 高校宿舍信息化管理系统设计 [J]. 电子技术与软件工程, 2023, (04): 258-262.

[9]Ribeiro V S D ,Lopes P L F ,Ângelo M M L , et al. Development of a computational tool in the Python language for the application of the AHP-Gaussian method [J]. Procedia Computer Science, 2023, 221 354-361.

[10]王一帆,王辰启,陈翔宇等. 基于Unity 3D的宿舍管理系统的研究 [J]. 电脑知识与技术, 2022, 18 (36): 56-58.

[11]霍佳璐,杨林生. 基于Java的高校宿舍智能管理系统的设计与实现 [J]. 信息与电脑(理论版), 2022, 34 (22): 134-136.

[12]涂华燕. 基于MySQL宿舍管理系统数据库设计 [J]. 电脑编程技巧与维护, 2021, (12): 104-106.

[13]陈玥. 基于Java语言开发的宿舍管理系统 [J]. 信息与电脑(理论版), 2021, 33 (21): 38-40.

[14]Chao H L ,Fa S S . Construction of College Students’ Physical Health Data Sharing System Based on Django Framework [J]. Journal of Sensors, 2021, 2021

[15]帅珍冕. 基于嵌入式平台的智慧宿舍系统设计与实现[D]. 南昌大学, 2021.

[16]Kai Z . Design and Analysis of Campus Dormitory Management System Based on Java [J]. The Frontiers of Society, Science and Technology, 2020, 2.0 (17.0):

[17]吴松杰, 宿舍管理系统V1.0. 湖北省, 武汉东湖学院, 2020-12-01.

[18]莫钢栋. 大学宿舍网络管理系统设计与实现 [J]. 电脑编程技巧与维护, 2020, (19): 66-68.

结束语

至此论文结束,感谢您的阅读。在此我要特别的感谢我的导师,虽然我在实习期间很忙,论文撰写的时候经常是停停改改,但是我的导师依旧十分的负责,时不时的询问我的任务进展情况,跟进我的论文进度,在指导老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识和经验,这些知识和经验令我受益匪浅。同时我也从导师身上看到了自己的不足,不论是在技术层面上还是在对待工作的态度上,导师如同明镜一般照出了我的缺点我的不足。此外,我还要感谢在我实习期间在论文和程序上帮助过我的同学和社会人士,此前我对于django框架方面的一些知识还不了解,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测。没有他们我是不能顺利完成本次毕业设计的。至此,我的毕业设计就花上了一个圆满的句号了。

请关注点赞+私信博主,免费领取项目源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值