摘 要
随着社会对学生心理健康重视程度不断提高,本研究旨在基于Django框架开发一款学生心理辅助教育平台。该平台旨在为学生提供心理知识、心理游戏、心理状况、心理档案、留言管理等功能,促进学生心理健康成长。
通过系统需求分析和功能设计,平台将整合心理学知识库、在线辅导工具和交流平台,为学生提供全方位的心理支持与教育。利用Django框架,python技术的高效性和灵活性,平台将实现用户注册登录、交流论坛、心理知识、心理测试等功能,提升用户体验和服务质量。
本研究将结合心理学理论和教育实践,借助现代技术手段,探索学生心理辅助教育的新模式和路径。通过搭建这一平台,旨在促进学生心理健康意识的提升,培养他们积极的心理品质和应对能力,为学校教育工作提供有益支持和借鉴。
关键词:python;django;学生心理辅助教育平台;MySQL
Abstract
With the increasing emphasis on student mental health in society, this study aims to develop a student psychological assistance education platform based on the Django framework. This platform aims to provide students with functions such as psychological knowledge, psychological games, psychological conditions, psychological files, and message management, promoting their mental health and growth.
Through system requirement analysis and functional design, the platform will integrate a psychology knowledge base, online tutoring tools, and communication platform to provide students with comprehensive psychological support and education. By utilizing the Django framework and the efficiency and flexibility of Python technology, the platform will achieve functions such as user registration and login, forum exchange, psychological knowledge, and psychological testing, improving user experience and service quality.
This study will combine psychological theory and educational practice, using modern technological means, to explore new models and paths of student psychological assistance education. By building this platform, the aim is to promote the improvement of students' mental health awareness, cultivate their positive psychological qualities and coping abilities, and provide useful support and reference for school education work.
Keywords:Python; Django; Student psychological assistance education platform; MySQL
1 绪论
1.1研究背景
随着社会对学生心理健康重视程度的增加,学校教育开始关注学生心理辅助服务的重要性。心理问题对学生学习和成长产生深远影响,因此开发一款学生心理辅助教育平台具有重要意义。这样的平台能够为学生提供及时的心理支持、资源共享和个性化辅导,促进学生心理健康水平的提升,有助于构建更加健康、和谐的校园教育环境。随着数字化教育工具的发展和教育信息化水平的提高,借助 Django 框架开发这样一款学生心理辅助教育平台将成为学校教育的重要补充和支持。
1.2研究意义
随着社会对学生心理健康的关注不断增强,学生心理辅助教育平台的研究与发展具有日益重要的意义。这样的平台可以为学生提供便捷的心理辅导服务,增强学生心理健康意识和自我调适能力。通过结合现代技术,学生心理辅助教育平台能够个性化诊断和辅导,提升教育工作者对学生心理状况的了解和关注程度。同时,这种平台也有助于学校建立健康的心理辅导体系,提升学生综合素质和心理素养,为学校教育事业的可持续发展提供有力支持。因此,学生心理辅助教育平台的研究与实践将在推动学生心理健康教育、促进学生全面发展方面发挥重要作用。
1.3 Vue.js 主要功能
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。
2 学生心理辅助教育平台系统分析
系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。
2.1 可行性分析
系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。
2.1.1 技术可行性分析
使用MySQL数据库存储学生心理辅助教育平台的数据,同时借助pycharm开发工具进行开发,为我们的编写工作带来了很大的便利。系统采用django框架进行开发,提升了系统的可扩展性和维护性,减少了python配置代码,简化了编程过程。目前,django框架已成为许多企业首选的开发框架之一。
2.1.2 经济可行性分析
在经济可行性方面,项目在开发阶段需要一台开发PC,而在生产阶段则需要web服务器和数据库服务器。从经济角度来看,一台个人PC的投入并不会带来过多负担,而在系统部署生产阶段,服务器的投入也在合理范围内,整体而言是一个比较可行的方案。
系统从法律层面上来没有对第三方有其他放有法律层面的问题,系统数据库采用的Mysql 开源社区数据库、框架采用的是开源的django。系统资讯和相关内容也是法律层面的。在源码的管理上采用git开源进行管理,所以在法律可行性上是成立的。
2.2 系统功能分析
学生心理辅助教育平台我划分为了学生用户模块和管理员模块这两大部分。
用户管理模块:
(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现发帖交流、信息的收藏评论等,就必须有这个系统的账号,如果没有账号的话,可以注册成用户进行相关的操作,同时用户还可以对个人信息以及操作的信息进行管控。
(2)查看学生心理辅助教育平台的首页信息:学生心理辅助教育平台的首页信息包含了首页、交流论坛、系统公告、心理游戏、心理知识、天气预报。
(2)交流论坛: 用户可浏览“交流论坛”菜单下的所有帖子信息,按分类查看帖子或使用关键词进行搜索。用户点击帖子可进入详细展示界面,点赞、收藏、评论或发布新帖。
(3)系统公告: 用户点击“系统公告”菜单可查看管理员发布的系统公告,查看公告详情。
(4)心理测试: 用户可以通过“心理测试”功能进行心理评估,了解个人心理健康状况。
(5)心理知识: 用户点击“心理知识”菜单查看所有心理知识,按条件查看或使用关键词查询。点击信息进入详细展示界面,进行收藏、点赞和评论。
(6)心理游戏: 用户点击“心理游戏”菜单查看所有心理游戏,按条件查看或使用关键词查询。点击信息进入详细展示界面,进行收藏、点赞和评论。
(7)我的账户:用户点击“我的账户”可以对个人资料以及密码进行更新。
(8)我的收藏:用户点击“我的收藏”,会显示出自己收藏的所有信息,点击某一条收藏可以查看信息详细介绍,同时删除收藏;
管理员管理模块:
(1)系统用户: 管理员负责审核和管理学生心理辅助教育平台中前台注册的用户。
(2)系统公告/轮播图管理:管理员可以对系统前台展示的轮播图以及系统公告进行增删改查,方便用户进行查看。
(3)交流管理: 管理员能够在论坛管理菜单下进行交流论坛和论坛分类的增删改查操作。
(4)资源管理:管理员可以对学生心理辅助教育平台前台展示的心理测试进行管控。
(5)心理知识:管理员可在“心理知识”菜单下查看所有心理知识信息,对其进行增删改查操作。
(6)心理游戏:管理员可在“心理游戏”菜单下查看所有心理游戏信息,对其进行增删改查操作。
(7)留言管理:管理员可以在“留言管理”模块下查看和管理用户留言信息,包括审核留言、回复用户留言等操作。
2.2.2 非功能性分析
学生心理辅助教育平台的非功能性需求比如学生心理辅助教育平台的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1学生心理辅助教育平台非功能需求表
安全性 | 主要指学生心理辅助教育平台数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指学生心理辅助教育平台能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响学生心理辅助教育平台占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着学生心理辅助教育平台的页面展示内容进行操作,就可以了。 |
可维护性 | 学生心理辅助教育平台开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
学生心理辅助教育平台的完整UML用例图分别是图2-1和图2-2。
图2-1就是管理员角色的用例展示。
图2-1 学生心理辅助教育平台管理员角色用例图
图2-2就是学生用户角色的用例展示。
图2-2 学生心理辅助教育平台学生用户角色用例图
2.4 系统流程分析
业务流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
(1)数据增加流程
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2-3显示的就是在增加数据时的流程。
图2-3 数据增加流程图
(2)数据修改流程
数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2-4所示。
图2-4 数据修改流程图
(3)数据删除流程
如果系统里面存在一些没有用的数据的话,相关的管理人员还可以对这些数据进行删除,图2-5就是数据删除时的流程图。
图2-5 数据删除流程图
2.5 本章小结
本章主要通过对学生心理辅助教育平台的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个学生心理辅助教育平台要实现的功能。同时也为学生心理辅助教育平台的代码实现和测试提供了标准。
3 学生心理辅助教育平台总体设计
本章主要讨论的内容包括学生心理辅助教育平台的功能模块设计、数据库系统设计。
3.1 系统功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本学生心理辅助教育平台中的用例。那么接下来就要开始对本学生心理辅助教育平台的架构、主要功能和数据库开始进行设计。学生心理辅助教育平台根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。
图3-1 学生心理辅助教育平台功能模块图
3.1.2用户模块设计
本系统的用户包括管理员和用户两种用户模块的功能基本是相同的,用户比管理员多了一个注册功能,所以以用户模块的结构图为例进行分析,用户模块结构图为例进行分析,如下图:
图3-2用户模块结构图
3.1.3 评论管理模块设计
学生心理辅助教育平台是一个交流性质的公开平台,用户在平台上提交评论,增加用户之间的互动性。但是同时也为了更好的规范评论的内容,给予管理员删除不合适的评论的功能,所以需要专门设计一个评论管理模块,具体的结构图如下:
图3-3评论管理模块结构图
3.1.4心理知识管理模块设计
学生心理辅助教育平台是中需要存储不少心理知识信息,其模块功能结构,具体的结构图如下:
图3-4心理知识信息模块结构图
3.2 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.2.1 数据库概念结构设计
在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称,本学生心理辅助教育平台中的主要的数据库E-R模型图如下图所示。
图3-5学生用户信息E-R关系图
图3-6 评论E-R关系图
图3-7 心理知识信息E-R关系图
图3-8 公告信息E-R关系图
图3-9 心理游戏信息E-R关系图
下面是整个学生心理辅助教育平台中主要的数据库表总E-R实体关系图。
图3-9 学生心理辅助教育平台总E-R关系图
通过上一小节中学生心理辅助教育平台中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表comment (评论)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表exam (考试)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | exam_id | mediumint | 8 | 0 | N | Y | 考试id | |
2 | name | varchar | 32 | 0 | N | N | 考试名称:[2,32] | |
3 | duration | int | 10 | 0 | Y | N | 答题时长 | |
4 | score | double | 9 | 2 | Y | N | 总分 | |
5 | status | varchar | 10 | 0 | Y | N | 状态:启用、禁用 | |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表exam_question (试题)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | exam_question_id | mediumint | 8 | 0 | N | Y | ||
2 | type | varchar | 20 | 0 | Y | N | 类型 | |
3 | title | varchar | 255 | 0 | Y | N | 题目 | |
4 | question_item | varchar | 500 | 0 | Y | N | 选项 | |
5 | answer | varchar | 500 | 0 | Y | N | 参考答案 | |
6 | score | double | 9 | 2 | Y | N | 总分 | |
7 | question_order | int | 10 | 0 | Y | N | 排序 | |
8 | exam_id | mediumint | 7 | 0 | Y | N | 所属试卷 | |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表forum (论坛)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
7 | title | varchar | 125 | 0 | N | N | 标题 | |
8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
12 | img | text | 65535 | 0 | Y | N | 封面图 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
表forum_type (论坛分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
4 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
6 | icon | varchar | 255 | 0 | Y | N | 分类图标: | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表game_classification (游戏分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | game_classification_id | int | 10 | 0 | N | Y | 游戏分类ID | |
2 | game_classification | varchar | 64 | 0 | Y | N | 游戏分类 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
表knowledge_classification (知识分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | knowledge_classification_id | int | 10 | 0 | N | Y | 知识分类ID | |
2 | knowledge_classification | varchar | 64 | 0 | Y | N | 知识分类 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表message (留言板)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | message_id | int | 10 | 0 | N | Y | 留言板ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
3 | title | varchar | 64 | 0 | Y | N | 标题: | |
4 | content | longtext | 2147483647 | 0 | N | N | 内容: | |
5 | nickname | varchar | 32 | 0 | N | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像: | |
7 | | varchar | 125 | 0 | Y | N | 留言者邮箱 | |
8 | phone | varchar | 11 | 0 | Y | N | 留言者手机号码 | |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
11 | reply | longtext | 2147483647 | 0 | Y | N | 回复 | |
12 | reply_state | tinyint | 4 | 0 | Y | N | 0 | 回复状态 |
表notice (公告)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表praise (点赞)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_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: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表psychological_archives (心理档案)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | psychological_archives_id | int | 10 | 0 | N | Y | 心理档案ID | |
2 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | registration_date | date | 10 | 0 | Y | N | 登记日期 | |
5 | psychological_condition | varchar | 64 | 0 | Y | N | 心理状况 | |
6 | psychological_description | text | 65535 | 0 | Y | N | 心理描述 | |
7 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
8 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表psychological_condition (心理状况)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | psychological_condition_id | int | 10 | 0 | N | Y | 心理状况ID | |
2 | psychological_condition | varchar | 64 | 0 | Y | N | 心理状况 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表psychological_games (心理游戏)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | psychological_games_id | int | 10 | 0 | N | Y | 心理游戏ID | |
2 | game_name | varchar | 64 | 0 | Y | N | 游戏名称 | |
3 | game_classification | varchar | 64 | 0 | Y | N | 游戏分类 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | game_link | varchar | 255 | 0 | Y | N | 游戏链接 | |
6 | game_attachments | varchar | 255 | 0 | Y | N | 游戏附件 | |
7 | game_introduction | longtext | 2147483647 | 0 | Y | N | 游戏介绍 | |
8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
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 | 更新时间 |
表psychological_knowledge (心理知识)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | psychological_knowledge_id | int | 10 | 0 | N | Y | 心理知识ID | |
2 | title | varchar | 64 | 0 | Y | N | 标题 | |
3 | cover | varchar | 255 | 0 | Y | N | 封面 | |
4 | knowledge_classification | varchar | 64 | 0 | Y | N | 知识分类 | |
5 | data_files | varchar | 255 | 0 | Y | N | 资料文件 | |
6 | video | varchar | 255 | 0 | Y | N | 视频 | |
7 | audio_frequency | varchar | 255 | 0 | Y | N | 音频 | |
8 | details | longtext | 2147483647 | 0 | Y | N | 详情内容 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表student_users (学生用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_users_id | int | 10 | 0 | N | Y | 学生用户ID | |
2 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
3 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
4 | contact_number | varchar | 64 | 0 | Y | N | 联系号码 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
3.4本章小结
整个学生心理辅助教育平台的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 学生心理辅助教育平台详细设计与实现
学生心理辅助教育平台的详细设计与实现主要是根据前面的学生心理辅助教育平台的需求分析和学生心理辅助教育平台的总体设计来设计页面并实现业务逻辑。主要从学生心理辅助教育平台界面实现、业务逻辑实现这两部分进行介绍。
4.1用户功能模块
4.1.1 前台首页界面
当进入学生心理辅助教育平台的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,再往下是系统公告,其主界面展示如下图4-1所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
学生心理辅助教育平台的用户可以进行注册登录,当用户左上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号,选择身份,然后填写身份信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可注册成功。其用注册界面展示如下图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))
4.1.3用户登录界面
学生心理辅助教育平台中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到学生心理辅助教育平台的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3用户登录界面图
登录的逻辑代码如下所示:
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))
4.1.4 交流论坛详情界面
用户点击“交流论坛”菜单显示所有的交流论坛信息,可以按照分类查看帖子信息,或者输入关键词进行局部搜索,点击可以进入帖子的详细展示界面,在此界面用户可以点赞、收藏、评论,也可以点击“发布内容”输入帖子信息进行发帖,交流论坛详情界面如下图4-4所示。
图4-4交流论坛详情界面图
4.1.5留言板界面
用户在点击导航栏上面的留言板后,就可以搜索查看留言信息,用户根据自己的喜好可以进行交流,留言板界面如图4-5所示。
图4-5留言板界面图
4.1.6心理知识详情界面
用户点击“心理知识”菜单可以查看所有心理知识,可以按照条件查看心理知识,或者输入关键词进行查询,点击可以进入心理知识详细展示界面,在此界面用户可以收藏、点赞、评论。心理知识详情界面如下图4-6所示。
图4-6心理知识详情界面图
4.1.7心理游戏详情界面
用户点击“心理游戏”菜单显示所有的心理游戏信息,可以按照条件进行心理游戏的筛选或者输入关键词进行局部搜索,点击可以进入心理游戏详细展示界面,在此界面用户可以收藏、点赞和评论。心理游戏详情界面如下图4-7所示。
图4-7心理游戏详情界面图
4.1.8 我的账户界面
当用户点击右上角“我的”这个按钮,会出现子菜单,点击“我的账户”可以对个人的资料、登录系统的密码进行设置管理,我的账户界面如下图4-8所示。
图4-8我的账户界面图
4.2管理员功能模块
4.2.1系统用户管理界面
管理员点击“用户管理”这一菜单会显示管理员和学生用户这两个子菜单,管理员可以对这两个角色的信息进行增删改查操作。界面如下图4-9所示。
图4-9系统用户管理界面图
用户管理关键代码如下:
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": "已存在"}}
4.2.2心理知识管理界面
管理员点击“心理知识”会显示出所有的心理知识,支持选择标题或者封面或者知识分类对心理知识进行查询,如果想要添加新的心理知识,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条心理知识,点击“删除”进行删除,也可以对用户提交的心理知识评论的信息进行管控。界面如下图4-10所示。
图4-10心理知识管理界面图
心理知识管理关键代码如下:
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}
4.2.3心理档案管理界面
管理员点击“心理档案”会显示出所有的心理档案,支持选择学生用户或者学生姓名对心理档案进行查询,如果想要添加新的心理档案,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条心理档案,点击“删除”进行删除。界面如下图4-11所示。
图4-11心理档案管理界面图
心理档案管理关键代码如下:
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}
学生心理辅助教育平台中的管理人员是可以对前台用户发布的留言进行审核回复。界面如下图4-12所示。
图4-12留言管理界面图
留言管理关键代码如下:
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}}
管理员点击“交流管理”菜单可以对其下交流论坛和论坛的分类进行增删改查,界面如下图4-13所示。
图4-13交流管理界面图
5系统测试
5.1 系统测试用例
系统测试包括:用户登录功能测试、心理知识展示功能测试、心理知识添加、心理知识搜索、密码修改、心理知识功能测试,如表5-1、5-2、5-3、5-4、5-5所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
心理知识查看功能测试:
表5-2 心理知识查看功能测试表
用例名称 | 心理知识查看 |
目的 | 测试心理知识查看功能 |
前提 | 用户登录 |
测试流程 | 点击心理知识列表 |
预期结果 | 可以查看到所有心理知识 |
实际结果 | 实际结果与预期结果一致 |
管理员添加交流管理界面测试:
表5-3 管理员添加交流管理界面测试表
用例名称 | 添加心理知识测试用例 |
目的 | 测试心理知识添加功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员点击心理知识,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的心理知识 |
实际结果 | 实际结果与预期结果一致 |
心理知识搜索功能测试:
表5-4心理知识搜索功能测试表
用例名称 | 心理知识搜索测试 |
目的 | 测试心理知识搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的心理知识 |
实际结果 | 实际结果与预期结果一致 |
密码修改搜索功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
5.2 系统测试结果
通过编写学生心理辅助教育平台的测试用例,已经检测完毕用户登录模块、心理知识展示模块、心理知识添加模块、心理知识搜索模块、密码修改模块,通过这五大模块为学生心理辅助教育平台的后期推广运营提供了强力的技术支撑。
结论
在开发学生心理辅助教育平台之前,必须对用户的具体需求进行详细分析,包括系统的可行性、功能需求以及其他相关需求。在可行性分析阶段,对系统实现的技术、经济和管理方面进行了全面分析,总体证明了系统实施的可行性。本文首先概述了学生心理辅助教育平台的背景和现状,然后详细阐述了系统的具体业务需求,并根据这些需求对系统的结构和功能模块等进行了设计。系统被划分为多个不同的功能模块,以便更好地实现各项功能。
在分析系统的功能需求时,对系统的整体架构和功能模块进行了深入分析,选择了适当的系统开发技术来完成各个模块的开发工作。系统开发完成后进行了部署,并进行了系统测试。测试结果证明系统在功能和性能方面都达到了预期要求,表现出较高的稳定性和可靠性。
参考文献
[1]张俊英,金浩然,杨凯. 基于Python语言的桥梁结构人工地震波模拟 [J]. 内蒙古公路与运输, 2024, (01): 43-47.
[2]景文会,刘伟,黄炳程等. 基于Python语言的中国革命历史知识图谱数据预处理技术研究 [J]. 现代信息科技, 2024, 8 (04): 116-120.
[3]陈泽帆,郭苗梓,李满等. 基于Python语言的成本管理系统设计与开发 [J]. 锻造与冲压, 2024, (04): 26-30.
[4]刘畅,王陈. MySQL数据库课程的教学评价体系设计 [J]. 电子技术, 2024, 53 (01): 393-395.
[5]魏晓玲,刘红英. 基于Python和Django框架的琴房管理系统设计与实现 [J]. 无线互联科技, 2023, 20 (22): 51-53.
[6]庞达,温家铭,武延鑫等. Django框架在海洋平台甲板片建造管理中的应用研究 [J]. 天津科技, 2023, 50 (11): 56-58+62.
[7]杨芬,宋晓燕. MySQL数据库应用的课程教学分析 [J]. 电子技术, 2023, 52 (10): 180-181.
[8]张小梅,何菊,佘侃侃等. Django框架下的用户鉴权机制分析与研究 [J]. 无线互联科技, 2023, 20 (18): 146-148.
[9]董竣冬,姜海昆,范宇. 基于Django框架的开发方法及装置[P]. 北京市: CN116069301A, 2023-05-05.
[10]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):
[11]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.
[12]马吉聪. 基于Django框架的糖尿病预测系统的设计与实现[D]. 云南师范大学, 2021.
[13]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
[14]Manikanta K V ,P. L ,Neha K R , et al. Visualization of Real World Enterprise Data using Python Django Framework [J]. IOP Conference Series: Materials Science and Engineering, 2021, 1042 (1): 012019-.
[15]徐志斌. 普通高校音乐心理辅助干预治疗的理论与实践研究 [J]. 北方音乐, 2019, 36 (16): 200-201.
[16]毛俊,孟利民,彭宏. 基于Django框架的车辆定位管理系统的设计和实现[C]// 中国电子学会信息论分会(Information Theory Committee of Chinese Institute of Electronics). 第二届亚太地区信息论学术会议论文集. 浙江省光纤通信技术重点研究实验室浙江工业大学信息学院;, 2019: 3.
[17]马喜亭,赵新,王新丽. 高校经济困难学生心理健康辅助模式的建立与实施 [J]. 中国大学生就业, 2019, (13): 94-95.
致 谢
在这个阶段,整个学生心理辅助教育平台已经圆满完成了。虽然过程艰辛,但当一切完成时,我感到极度自豪。尽管系统仍存在一些缺陷,但我已全力以赴,为我的大学四年画上了完美的句号。首先,我要感谢大学四年来所有教导我的老师。是他们传授给我专业知识和做人道理,从最初对系统开发一窍不通,到如今能够独立开发一个包含前台框架、后台框架、业务流程、数据结构和操作系统等多方面知识的管理系统。只有将它们有机结合,才能完成整个系统,这都归功于老师们的教诲。其次,要感谢我的指导老师。在系统开发过程中,我遇到无数问题,经常向导师请教,无论线上还是线下。每次求教,导师都耐心指导,教我如何实现功能,如何使系统更完善。通过自己查阅资料解决问题,提升了自主解决问题的能力。授人以鱼不如授人以渔,导师的这种指导受益终身。我将继续向导师学习,不断进步。在此,我想说一句:“老师,谢谢您,您辛苦了!”
同时,要感谢我的室友和同学。在这四年中,他们不仅在学习上给予建议,更在生活中给予帮助。正是有了他们的支持,我的大学生活才如此完美。最后,希望未来的道路能走得更远,不辜负大学学习和老师们的教导。追逐梦想,不停歇,即使面临困难也要坚持前行。愿山河无恙,岁月静好。