基于Python+Django的校园宿舍安全管理系统设计与实现

💗博主介绍:✌全网粉丝20W+,优快云全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者,计算机毕设实战导师。目前专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌
💗主要服务内容免费功能设计、选题定题、开题报告、任务书、程序开发、论文编写和辅导、论文降重、程序讲解、答辩辅导等,欢迎咨询~
👇🏻 精彩专栏 推荐订阅👇🏻
计算机毕业设计精品项目案例(持续更新,值得收藏!)✅
2024-2025年计算机毕业设计选题推荐:计算机专业毕业设计题目大全✅
全网最全计算机毕业设计选题推荐:计算机毕设选题指导及避坑指南✅
🌟文末获取源码+数据库+文档🌟
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以和学长沟通,希望帮助更多的人

一.前言

在这里插入图片描述
近些年来,随着校园规模扩大与人员流动增多,宿舍安全管理面临挑战,利用信息化技术的校园宿舍安全管理系统应运而生。该系统利用高精度人脸识别算法,在宿舍各出入口精准采集人员面部信息。对于入住学生,前期录入人脸图像等详细资料至数据库,当学生进出时,摄像头瞬间捕捉人脸,快速比对数据库信息,确认身份,实现无感快速通行,有效防止外来无关人员混入。同时,系统具备实时预警功能,一旦识别出陌生或可疑人员,立即向宿管人员推送警报,包含人员图像与位置信息,方便及时处理。后台还能记录学生出入时间,生成详细报表,为宿舍管理提供数据支持,如查寝、作息规律分析等。通过多方面协同运作,人脸识别校园宿舍安全管理系统极大提升宿舍安全性、管理效率,为校园住宿环境稳定有序筑牢根基,助力智慧校园建设迈向新高度。


二.技术环境

开发语言:Python
python框架:django
软件版本:python3.7/python3.8
数据库:mysql 5.7或更高版本
数据库工具:Navicat11
开发软件:PyCharm/vs code
前端框架:vue.js


三.功能设计

系统分为学生、宿管、管理员三个角色,系统用例图如图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统总体功能结构图如下所示:
在这里插入图片描述

四.数据设计

系统需要数据库存储系统中的信息,MySQL数据库能够处理系统的信息,当系统需要数据的时候,MySQL数据库能够取得数据交给服务端处理。目前可以采用数据库建模来实现。系统部分实体E-R图,如图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统总体E-R图如下所示:

在这里插入图片描述

五.部分效果展示

5.1前台用户功能实现效果

当学生打开系统的网址后,首先看到的就是首页界面。在这里,学生能够看到校园宿舍安全管理系统的导航条显示首页、宿舍信息、公告信息、个人中心。系统首页界面如图所示:
在这里插入图片描述

在登录流程中,学生首先在Vue前端界面输入账号、密码等信息。这些信息通过HTTP请求发送到Python后端。后端接收请求,通过与MySQL数据库交互验证学生凭证。如果认证成功,后端会返回给前端,允许学生访问系统。这个过程涵盖了从学生输入到系统验证和响应的全过程。如图所示:
在这里插入图片描述

学生点击个人中心,在个人中心页面可以修改密码、对分配宿舍、出入信息、异常上报、警告信息、我的收藏等进行查看,还可以更新头像、学生姓名、联系电话等操作;如图所示:
在这里插入图片描述

学生点击公告信息,在公告信息页面的可以查看标题、点赞数、浏览次数、发布人等,如感兴趣还可以进行点赞、收藏信息;如图所示:
在这里插入图片描述

学生点击宿舍信息,可以查看宿舍号、宿舍位置、可住人数、剩余床位、宿舍配置、门禁时间等,如感兴趣还可以收藏和评论,如图所示:
在这里插入图片描述

5.2后台宿管功能实现效果

宿管登录界面,首先双击打开系统,连上网络之后会显示出本系统的登录界面,这是进入系统的第初始页面“登录”,能成功进入到该登录界面则代表系统的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能,如图所示。

在这里插入图片描述

宿管登录系统后,可以对系统首页、宿舍信息、分配宿舍、出入信息、异常上报、警告信息、来访登记、弹窗提醒、个人中心等功能进行相应操作,如图所示。
在这里插入图片描述

5.3后台管理员功能实现效果

管理员登录进入系统可以查看系统首页、宿管、学生、宿舍信息、分配宿舍、出入信息、异常上报、警告信息、来访登记、弹窗捉醒、系统管理、个人中心等功能,进行详细操作,如图所示。
在这里插入图片描述

学生信息管理功能实现是在Django后端部分,您需要创建一个新的应用,然后在该应用下创建一个模型(models.py)来定义用户的数据结构,使用Django的ORM来处理与MySQL数据库的交互,包括学生信息的添删改查等操作。接着,在views.py中编写视图逻辑来处理前端请求,使用Django的URL路由(urls.py)将请求映射到相应的视图函数。对于数据的验证和序列化,可以使用Django的表单或序列化器来实现。在前端Vue.js部分,将创建相应的Vue组件,在这些组件中使用axios或其他HTTP库与Django后端的API进行交互,实现用户信息的展示、添加学生、编辑学生信息和删除用户等功能。状态管理可以通过Vuex来维护,比如在store目录下定义用户模块的状态、突变、动作和获取器。如图所示。
在这里插入图片描述

管理员点击宿舍信息;在宿舍信息页面输入楼栋编号、宿舍号、宿舍位置等信息,进行查询,可以查看到楼栋编号、宿舍号、图片、宿舍位置、可住人数、剩余床位、宿管账号、宿管姓名、门禁时间、评论数、收藏数等信息,还可以进行查看、修改和删除操作;如图所示。
在这里插入图片描述

管理员点击出入信息;在出入信息页面输入出入类型、学生姓名等信息,进行查询,可以查看到楼栋编号、宿舍号、床位号、出入类型、出入时间、学号、学生姓名、照片、联系电话、宿管账号、宿管姓名、审核回复、审核状态等信息,如图所示。
在这里插入图片描述

管理员点击异常上报;在异常上报页面对学生姓名进行搜索,可以查看到楼栋编号、宿舍号 上报时间、学号、学生姓名、异常图片、联系电话、宿管账号、宿管姓名、审校回复、审核状态等,还可以进行查看、修改及删除操作;如图所示。
在这里插入图片描述

管理员点击警告信息;在警告信息页面对学生姓名进行查询,可以查看到楼栋编号、宿舍号、警告图片、警告时间、学号、学生姓名、联系电话、宿管账号、宿管姓名、审核回复等信息,还可以进行查看、修改及删除等操作;如图所示。
在这里插入图片描述

管理员点击来访登记;在来访登记页面对登记编号、来访人、联系方式、来访时间 、离开时间 、来访目的 、楼栋编号、 宿舍号、床位号、学号、访问人、宿管账号、宿管姓名等信息,进行查询、修改或删除等操作;如图所示。

在这里插入图片描述

管理员点击公告信息;在公告信息页面对标题 、分类名称 、发布人、点击次数、收藏数、图片等信息,进行查询、添加或删除等操作;如图所示。
在这里插入图片描述

六.部分功能代码

def yonghu_register(request):
    if request.method in ["POST", "GET"]:
        msg = {'code': normal_code, "msg": mes.normal_code}
        req_dict = request.session.get("req_dict")


        error = yonghu.createbyreq(yonghu, yonghu, req_dict)
        if error != None:
            msg['code'] = crud_error_code
            msg['msg'] = "用户已存在,请勿重复注册!"
        return JsonResponse(msg)

def yonghu_login(request):
    if request.method in ["POST", "GET"]:
        msg = {'code': normal_code, "msg": mes.normal_code}
        req_dict = request.session.get("req_dict")
        datas = yonghu.getbyparams(yonghu, yonghu, req_dict)
        if not datas:
            msg['code'] = password_error_code
            msg['msg'] = mes.password_error_code
            return JsonResponse(msg)

        try:
            __sfsh__= yonghu.__sfsh__
        except:
            __sfsh__=None

        if  __sfsh__=='是':
            if datas[0].get('sfsh')!='是':
                msg['code']=other_code
                msg['msg'] = "账号已锁定,请联系管理员审核!"
                return JsonResponse(msg)
                
        req_dict['id'] = datas[0].get('id')


        return Auth.authenticate(Auth, yonghu, req_dict)


def yonghu_logout(request):
    if request.method in ["POST", "GET"]:
        msg = {
            "msg": "登出成功",
            "code": 0
        }

        return JsonResponse(msg)


def yonghu_resetPass(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code}

        req_dict = request.session.get("req_dict")

        columns=  yonghu.getallcolumn( yonghu, yonghu)

        try:
            __loginUserColumn__= yonghu.__loginUserColumn__
        except:
            __loginUserColumn__=None
        username=req_dict.get(list(req_dict.keys())[0])
        if __loginUserColumn__:
            username_str=__loginUserColumn__
        else:
            username_str=username
        if 'mima' in columns:
            password_str='mima'
        else:
            password_str='password'

        init_pwd = '123456'
        recordsParam = {}
        recordsParam[username_str] = req_dict.get("username")
        records=yonghu.getbyparams(yonghu, yonghu, recordsParam)
        if len(records)<1:
            msg['code'] = 400
            msg['msg'] = '用户不存在'
            return JsonResponse(msg)

        eval('''yonghu.objects.filter({}='{}').update({}='{}')'''.format(username_str,username,password_str,init_pwd))
        
        return JsonResponse(msg)



为什么选择我们

大学毕业那年,曾经有幸协助指导老师做过毕业设计课题分类、论文初选(查看论文的格式)、代码刻录等打杂的事情,也帮助过同界N多同学完成过毕业设计工作,毕业后在一家互联网大厂工作8年,先后从事Java前后端开发、系统架构设计等方面的工作,有丰富的编程能力和水平,也在工作之余指导过别人完成过一些毕业设计的工作。2016年至今,团队已指导上万名学生顺利通过毕业答辩,目前是csdn特邀作者、优快云全栈领域优质创作者,博客之星、掘金/华为云/B站/知乎等平台优质作者,计算机毕设实战导师,专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎咨询~✌

最后

💕💕
最新计算机毕业设计选题篇-选题推荐
小程序毕业设计精品项目案例-200套
Java毕业设计精品项目案例-200套
Python毕业设计精品项目案例-200套
大数据毕业设计精品项目案例-200套
💟💟如果大家有任何疑虑,欢迎在下方位置详细交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一点毕设

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值