随着我国经济的迅速发展和人们对手机的日益增长的需求,手机软件的广泛应用成为了常态。在手机数据信息管理方面,各种软件备受用户喜爱,其中助眠微信小程序备受用户普遍使用。为了方便用户随时在线查看和管理助眠的数据信息,我们特地开发了助眠微信小程序。
助眠微信小程序的设计主要考虑到系统所要实现的功能,并进行了详细的功能规划。在确定功能后,我们进行了界面的设计,同时也考虑了如何更好地将功能与页面结合起来,以便用户可以轻松找到所需信息。此外,我们还重视系统平台后期的可操作性,通过深入了解信息内容并进行技术开发,确保系统的高效运行。
在助眠微信小程序的开发过程中,我们借鉴了现有的成熟技术,并以源代码为模板。通过分析功能调整和助眠微信小程序管理的实际需求,我们讨论了基于该小程序的使用方式,并进行了相应的修改和优化。
总之,助眠微信小程序的开发充分利用了成熟技术和对用户需求的深入理解。通过精心设计和技术开发,致力于提供便捷、高效的手机数据信息管理服务,以满足用户对助眠的需求。
关键词:django;python语言;助眠小程序;MySQL
Abstract
With the rapid development of China's economy and the increasing demand for mobile phones, the widespread application of mobile software has become the norm. In terms of mobile data information management, various software is highly favored by users, among which the Sleep Aid WeChat mini program is widely used by users. In order to facilitate users to view and manage sleep aid data information online at any time, we have specially developed a sleep aid WeChat mini program.
The design of the sleep aid WeChat mini program mainly considers the functions that the system needs to achieve, and detailed functional planning has been carried out. After determining the functions, we designed the interface and also considered how to better integrate the functions with the page so that users can easily find the information they need. In addition, we also attach great importance to the operability of the system platform in the later stage. By deeply understanding the information content and conducting technical development, we ensure the efficient operation of the system.
In the development process of the sleep aid WeChat mini program, we drew on existing mature technologies and used the source code as a template. By analyzing the actual needs for functional adjustments and management of the sleep aid WeChat mini program, we discussed the usage of the mini program and made corresponding modifications and optimizations.
In summary, the development of the Sleep Aid WeChat mini program fully utilizes mature technology and a deep understanding of user needs. Through careful design and technological development, we are committed to providing convenient and efficient mobile data information management services to meet the needs of users for sleep assistance.
Key words :Django; Python language; Sleep aid mini program; MySQL
目 录
1 绪论
1.1研究背景与意义
近年来,随着生活节奏的加快和工作压力的增大,越来越多的人面临睡眠问题和失眠困扰。睡眠不足和质量不佳对个人健康和生活品质产生负面影响,甚至可能引发其他健康问题。因此,研究和开发助眠小程序成为了一个重要课题。
助眠小程序能够通过音频、视觉和声波等方式,提供各种放松和舒缓的内容,帮助用户减轻压力、放松身心,并进入更好的睡眠状态。这些内容可以包括自然环境的音乐、冥想指导、呼吸调节、温和的视觉效果等。助眠小程序还可以根据用户的个性化需求,提供定制化的睡眠方案和建议,帮助用户改善睡眠质量。
助眠小程序的研究和开发具有重要的背景和意义。首先,它满足了人们对于改善睡眠质量的迫切需求。随着社会节奏的加快和工作压力的增大,许多人面临着睡眠问题和失眠困扰。助眠小程序提供了一种便捷、自主的方式来帮助人们放松身心,改善睡眠。
其次,助眠小程序与现代科技的结合使得睡眠辅助更加智能化和个性化。通过分析用户的睡眠习惯和需求,助眠小程序可以提供个性化的睡眠方案和建议,为每个用户量身定制最适合自己的助眠内容。这样的智能化特性提高了助眠效果的针对性和有效性。
最后,助眠小程序的研究还可以为睡眠医学领域提供实证案例和理论依据。通过对用户使用助眠小程序的数据进行分析和研究,可以深入探索睡眠问题的机制和解决方案,为睡眠医学的发展提供借鉴和参考。
综上所述,助眠小程序的研究背景和意义在于满足人们对于改善睡眠质量的需求,提供智能化和个性化的睡眠辅助方案,并为睡眠医学领域的研究和发展做出贡献。这一研究对于人们改善睡眠质量、减轻压力、提升生活品质具有重要意义。
1.2研究方法
首先,通过搜索引擎或查阅相关文献资料,了解本系统开发的背景和设计系统的意义,并收集用户需求信息。其次,在选择开发工具方面,决定使用Python平台来设计开发该系统,并使用MySQL作为数据库工具。这样可以利用Python语言实现用户界面,并与数据库进行连接,实现完整的通信功能。然后,设计系统的主要功能模块,从方便系统用户和系统管理员的角度进行分析,明确系统应具备的功能。最后,进行系统测试,通过用例测试发现问题并找到解决方案。利用现有的开发平台,结合所学知识,在指导下完成系统设计,确保系统具有可用性和实用性。
1.3 微信开发者工具
微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。根据用户的需求,我们将采用不同的屏幕大小来制作小程序。在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。控制台:方便调试打印输出信息。将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。本地数据存储:显示的是本地存储的数据。通过使用子父层级结构,我们可以更容易地进行视图调试。微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的管理端配置服务器域名。微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。
2 助眠小程序系统分析
2.1 可行性分析
可行性分析是系统分析的第一步,通过可行性分析我们可以得出系统是不是值得开发,如果系统的开发是不可信的,那么就没有必要再进行下面的操作,对于本助眠小程序,在可行性方面进行了技术、经济以及操作的分析。
2.1.1 技术可行性分析
助眠小程序设计与实现是一个基于Web的交易、管理平台,我们在实现这个系统所采用的技术方案是基于python语言,django框架,MYSQL数据库,在大学的学习中这两门课程都已经学过,而且自己也用这些技术开发过小的项目,在平时的课程设计以及作业也经常用到python和MYSQL,在技术上实现自己的自主开发是可行的。
2.1.2 经济可行性分析
开发助眠小程序并不需要投入太多,开发工具、服务器、数据库等,都可以通过网络搜索、下载、安装,只需要一台普通的计算机就可以完成操作,而且在系统功能规划上通过走访调查目前用户对助眠小程序的需求,了解它们对系统具体实现的功能需求,然后进行设计开发,不存在任何开销,因此系统的开发在经济方面是可行的。
2.1.3 操作可行性分析
操作方面主要考虑的是用户在使用以及管理人员在管理的时候,是否简单可行,没有任何计算机基础的用户能否使用,开发的助眠小程序在设计的时候秉承简单易学的理念,在用户进入系统后都会有固定的导航按钮,只要认字就可以操作完成,而且管理员在管理方面也只需简单的增删改查即可完成,因此在操作上也是可行的。
2.2 系统性能分析
系统的性能方面主要是从系统的安全性、存储性、可靠性、易学性、稳定性等方面进行分析:
系统的安全性:确保用户个人信息的安全和隐私,采取合适的加密措施来保护数据传输和存储。实施有效的用户身份验证机制,防止未经授权的访问和操纵。进行系统漏洞扫描和安全测试,及时修补和防御潜在的安全风险。
存储性:选择合适的数据库管理系统,进行良好的数据表设计、索引和查询优化,提高系统的数据读写效率和响应速度。定期进行数据备份,并建立相应的恢复机制,以防止数据丢失和系统故障。
可靠性:处理系统运行中可能出现的各种异常情况,包括网络中断、服务崩溃等,以保证系统的稳定性和可靠性。根据系统的负载情况,采用合适的负载均衡策略,确保系统能够平稳运行,并具备水平扩展的能力。
易学性:设计简洁直观的用户界面,使用户可以轻松理解和操作系统的功能。使用说明和帮助文档:提供清晰明了的使用说明和帮助文档,以便用户快速上手和解决问题。
稳定性:建立系统监控机制,实时监测系统运行状态和性能指标,并记录关键操作和错误日志,便于故障排查和问题解决。及时捕获和处理系统中的错误和异常,提供相应的错误提示和恢复机制,以确保系统的稳定性和可用性。
2.3 系统功能分析
助眠小程序中采用了python的django框架进行开发,在数据库上选择MYSQL,在功能上助眠小程序我划分为了普通用户管理模块和管理员模块这两大部分。
普通用户管理模块:
(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现发帖交流、信息的收藏评论等,就必须有这个系统的账号,如果没有账号的话,可以注册成用户进行相关的操作,同时用户还可以对个人信息以及操作的信息进行管控。
(2)查看助眠小程序的首页信息:助眠小程序的首页信息包含了首页、公告信息、相关资讯、社区论坛、白噪声音、呼吸练习、冥想音频、音频排行、ASMR。
(3)公告信息:用户点击“公告信息”菜单显示管理员在管理端发布的所有的公告信息,可以查看公告信息详情。
(4)相关资讯:用户点击“相关资讯”菜单显示所有的相关资讯信息,可以按照条件进行相关资讯的筛选或者输入关键词进行局部搜索,点击可以进入相关资讯详细展示界面,在此界面用户可以收藏、点赞和评论。
(5)白噪声音:用户点击“白噪声音”菜单可以查看所有白噪声音,可以按照条件查看白噪声音,或者输入关键词进行查询,点击可以进入白噪声音详细展示界面,在此界面用户可以收藏、点赞和评论。
(6)社区论坛:用户点击“社区论坛”菜单显示所有的社区论坛信息,可以按照分类查看帖子信息,或者输入关键词进行局部搜索,点击可以进入帖子的详细展示界面,在此界面用户可以点赞、收藏、评论,也可以点击“发布内容”输入帖子信息进行发帖。
(7)呼吸练习:用户点击“呼吸练习”菜单可以查看所有呼吸练习,可以按照条件查看呼吸练习,或者输入关键词进行查询,点击可以进入呼吸练习详细展示界面,在此界面用户可以收藏、点赞和评论。
管理员管理模块:
(1)登录:管理员在管理端可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。
(2)系统管理:管理员点击“系统管理”菜单可以对首页展示的轮播图进行增删改查。
(3)公告信息:管理员点击“公告信息”菜单可以查看到系统中的所有公告信息,对已经存在的公告信息,管理员可以修改,也可以添加新的公告信息或者删除公告信息。
(4)资源管理:管理员点击“资源管理”菜单能够对其下子菜单相关资讯和资讯的分类进行增删改查。
(5)系统用户:管理员点击“系统用户”菜单可以对系统中存在的用户进行管理,包含了管理员用户和普通用户。
(6)白噪声音:管理员点击“白噪声音”会显示出所有的白噪声音,支持输入声音名称或者声音类型对白噪声音进行查询,如果想要添加新的白噪声音,点击“添加”按钮,输入声音名称、声音类型、声音时长、声音来源、声音作者、播放量、声音图片等信息,点击“提交”按钮就可以添加了,同时可以选择某一条白噪声音,点击“删除”进行删除,也可以对用户提交的白噪声音评论的信息进行管控。
(7)呼吸练习:管理员点击“呼吸练习”会显示出所有的呼吸练习信息,支持通过呼吸明细或者音频来源对呼吸练习信息进行查询,如果想要添加新的呼吸练习信息,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条呼吸练习信息,点击“删除”进行删除,也可以对用户提交的呼吸练习评论的信息进行管控。
2.4 系统用例分析
系统的用例展示的是系统功能与用户之间的关系,通过用例的方式能够直观的展示出来,本助眠小程序的完整UML用例图分别是图2-1、图2-2。

图2-1 助眠小程序用户端用户角色用例图

图2-2 助眠小程序管理端管理员角色用例图
2.5系统业务流程分析
管理员权限下的工作流程主要为:管理员通过系统界面提供登录按钮并点击,转入管理员登录界面,并在界面上填入相应的管理员账户和管理员密码,进入管理员权限下的后台系统,并且在系统左侧导航条设置了相应的操作功能。
用户权限下的工作流程主要为:用户通过系统提供的注册功能,进行身份验证并注册,而后在登录界面进行个人身份验证,并且进入用户的个人后台界面,并进行相应的操作。
助眠小程序的业务流程如下图所示。

图2-3 系统业务流程图
3 助眠小程序总体设计
本章主要讨论的内容包括助眠小程序的功能模块设计、数据库系统设计。
3.1 系统功能模块设计
3.1.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关系图
助眠小程序的总E-R图如下:

图3-9总体ER图
3.2.2 数据库逻辑结构设计
通过上一小节中助眠小程序中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表asmr (ASMR)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | asmr_id | int | 10 | 0 | N | Y | ASMRID | |
2 | sound_name | varchar | 64 | 0 | Y | N | 声音名称 | |
3 | sound_duration | varchar | 64 | 0 | Y | N | 声音时长 | |
4 | wave_audio | varchar | 255 | 0 | Y | N | 声音音频 | |
5 | introduction_to_sound | text | 65535 | 0 | Y | N | 声音介绍 | |
6 | sound_content | text | 65535 | 0 | Y | N | 声音内容 | |
7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表breathing_exercises (呼吸练习)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | breathing_exercises_id | int | 10 | 0 | N | Y | 呼吸练习ID | |
2 | respiratory_name | varchar | 64 | 0 | Y | N | 呼吸名称 | |
3 | difficulty_coefficient | varchar | 64 | 0 | Y | N | 难度系数 | |
4 | breathing_duration | varchar | 64 | 0 | Y | N | 呼吸时长 | |
5 | breath_icon | varchar | 255 | 0 | Y | N | 呼吸图标 | |
6 | breathing_audio | varchar | 255 | 0 | Y | N | 呼吸音频 | |
7 | introduction_to_breathing | text | 65535 | 0 | Y | N | 呼吸介绍 | |
8 | breathing_content | text | 65535 | 0 | Y | N | 呼吸内容 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | timer_title | varchar | 64 | 0 | Y | N | 计时器标题 | |
12 | timing_start_time | datetime | 19 | 0 | Y | N | 计时开始时间 | |
13 | timing_end_time | datetime | 19 | 0 | Y | N | 计时结束时间 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表collect (收藏)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表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: |
表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]用来搜索指定类型的论坛帖 |
表meditation_audio (冥想音频)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | meditation_audio_id | int | 10 | 0 | N | Y | 冥想音频ID | |
2 | audio_name | varchar | 64 | 0 | Y | N | 音频名称 | |
3 | audio_duration | varchar | 64 | 0 | Y | N | 音频时长 | |
4 | audio_files | varchar | 255 | 0 | Y | N | 音频文件 | |
5 | audio_introduction | text | 65535 | 0 | Y | N | 音频介绍 | |
6 | audio_content | text | 65535 | 0 | Y | N | 音频内容 | |
7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表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 | 更新时间: |
表regular_users (普通用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表slides (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表vip_level (论坛分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | smallint | 5 | 0 | N | Y | 等级ID:[0,10000] | |
2 | name | varchar | 255 | 0 | N | N | 等级名称:[2,16] | |
3 | discount | double | 11 | 2 | N | N | 折扣 | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表white_noise_sound (白噪声音)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | white_noise_sound_id | int | 10 | 0 | N | Y | 白噪声音ID | |
2 | sound_name | varchar | 64 | 0 | Y | N | 声音名称 | |
3 | sound_duration | varchar | 64 | 0 | Y | N | 声音时长 | |
4 | sound_image | varchar | 255 | 0 | Y | N | 声音图片 | |
5 | wave_audio | varchar | 255 | 0 | Y | N | 声音音频 | |
6 | introduction_to_sound | text | 65535 | 0 | Y | N | 声音介绍 | |
7 | sound_content | text | 65535 | 0 | Y | N | 声音内容 | |
8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
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登录界面图
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.2管理员功能模块
4.2.1系统用户管理界面
管理员点击“系统用户”这一菜单会显示管理员和普通用户这两个子菜单,管理员可以对这两个角色的信息进行增删改查操作。界面如下图4-7所示。

图4-7 系统用户管理界面图
系统用户管理关键代码如下:
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-8所示。

图4-8白噪声音管理界面图
白噪声音管理关键代码如下:
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}
4.2.3 呼吸练习管理界面
管理员点击“呼吸练习”会显示出所有的呼吸练习信息,支持通过呼吸名称对呼吸练习信息进行查询,如果想要添加新的呼吸练习信息,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条呼吸练习信息,点击“删除”进行删除。同时设有查看管理评论的功能,对用户提交的评论进行管控,界面如下图4-9所示。

图4-9呼吸练习管理界面图
4.2.4资源管理界面
管理员点击“资源管理”菜单能够对其下子菜单相关资讯和资讯的分类进行增删改查。界面如下图4-10所示。

图4-10资源管理界面图
资源管理关键代码如下:
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.2.5 交流管理界面
管理员点击“交流管理”菜单可以对其下社区论坛和论坛的分类进行增删改查。界面如下图4-11所示。

图4-11交流管理界面图
交流管理关键代码如下:
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}}
5.1 测试目的
系统测试的目的就是为了找错,从开发好的系统当中通过各种手段、方法进行找错,看看系统是不是存在乱码的现象,是不是用户功能混乱,通过各种纠错,保证系统能够正常的运行,在测试中我们通过采用的是黑盒测试和白盒测试两种测试方法,通过黑盒测试,我们可以了解系统各项功能是不是能够实现,界面是不是美观,操作是不是方便,通过白盒测试,我们可以了解到某一条的具体编程代码是不是运行路径正确,能不能达到预期,从错误中不断完善,想尽一切办法找到系统中存在的错误,然后找到出错的具体原因,然后对系统进行修改,达到我们所要实现的功能,进而提高了系统的各种性能(安全性、可靠性、稳定性等)。
系统测试不是程序开发完以后才开始的,他贯穿了开发的整个过程,在开发的过程中我们都会对实现的代码进行一点一点的测试,从而完成系统,再对系统进行整体测试,保证每个用户在使用的时候都能做到系统运行流程,满足信息增删改查等主要功能。
5.2 系统测试用例
表5.1 登录模块功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
登录模块测试 | 登录成功的情况 | 管理员可以通过浏览器进入到助眠小程序管理端的登录界面,输入用户名:admin和密码admin后,点击“登录”按钮。 | 成功登录到管理员管理的界面 | 正确 |
登录模块测试 | 登录失败的情况 | 管理员可以通过浏览器进入到助眠小程序的管理端登录界面,输入用户名:admin和密码111后,点击“登录”按钮。 | 系统提示“用户名和密码不匹配” | 正确 |
相关资讯信息添加功能测试:
表5.2 相关资讯信息添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
相关资讯添加模块测试 | 相关资讯添加成功的情况 | 在“资源管理”菜单中选择“相关资讯”点击 “新增”,输入相关资讯相关信息,输入正确的信息后,点击“提交”按钮。 | 提示添加成功 | 正确 |
相关资讯添加模块测试 | 相关资讯添加失败的情况 | 在“资源管理”菜单中选择“相关资讯”点击 “新增”,不输入新闻标题,其他信息正常填写后,点击“提交”按钮。 | 提示“添加失败,新闻标题不能为空” | 正确 |
查看呼吸练习功能模块测试:
表5.3 查看呼吸练习功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
查看呼吸练习功能测试 | 呼吸练习显示成功的情况 | 用户在首页点击“呼吸练习”进入呼吸练习,任性一条呼吸练习,查看详情 | 视频显示成功 | 正确 |
表5.4 冥想音频信息添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
冥想音频添加模块测试 | 冥想音频添加成功的情况 | 在“冥想音频管理”菜单中选择“冥想音频添加”,输入冥想音频相关信息,输入正确的信息后,点击“提交”按钮。 | 提示添加成功 | 正确 |
冥想音频添加模块测试 | 冥想音频添加失败的情况 | 在“冥想音频管理”菜单中选择“冥想音频添加”,不输入音频名称,其他信息正常填写后,点击“提交”按钮。 | 提示“添加失败,音频名称不能为空” | 正确 |
5.3 系统测试结果
通过编写助眠小程序的测试用例,已经检测完毕登录、相关资讯添加、呼吸练习查看、冥想音频添加,通过这4大模块为助眠小程序的后期推广运营提供了强力的技术支撑。
至此,助眠小程序已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Python、Django技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
参考文献
[2]张怡,姜玉琴. 基于微信小程序的“校企社”联动社区药学服务模式构建与应用 [J]. 中国药房, 2024, 35 (01): 107-111.
[3]周玲元,方先涛. “双一流”高校图书馆轻量级微服务发展策略研究——以微信小程序为例 [J]. 图书馆理论与实践, 2024, (01): 77-82.
[4]陈淼,羊开云. 基于微信小程序的校园报修管理系统设计 [J]. 网络安全技术与应用, 2024, (01): 57-60.
[5]Xiao J ,Zhou H ,Lei Q , et al. Attention-Mechanism-Based Face Feature Extraction Model for WeChat Applet on Mobile Devices [J]. Electronics, 2024, 13 (1):
[6]Wu J ,Chen N ,Xia H , et al. Design and application of a game‐based WeChat mini‐program for screening cognitive impairments in Chinese older adults [J]. Alzheimer's & Dementia, 2023, 19 (S11):
[7]Wu J ,Chen N ,Xia H , et al. Design and development of the intelligent voice recognition‐based cognitive assessment WeChat mini‐program [J]. Alzheimer's & Dementia, 2023, 19 (S11):
[8]魏晓玲,刘红英. 基于Python和Django框架的琴房管理系统设计与实现 [J]. 无线互联科技, 2023, 20 (22): 51-53.
[9]庞达,温家铭,武延鑫等. Django框架在海洋平台甲板片建造管理中的应用研究 [J]. 天津科技, 2023, 50 (11): 56-58+62.
[10]张小梅,何菊,佘侃侃等. Django框架下的用户鉴权机制分析与研究 [J]. 无线互联科技, 2023, 20 (18): 146-148.
[11]魏凯. 基于Python Django框架的协同办公管理系统构建 [J]. 信息与电脑(理论版), 2023, 35 (16): 114-116.
[12]董竣冬,姜海昆,范宇. 基于Django框架的开发方法及装置[P]. 北京市: CN116069301A, 2023-05-05.
[13]胡文寒,李健喆,曾天伦等. 基于CNN的人脸识别解压助眠微信小程序 [J]. 电脑编程技巧与维护, 2022, (08): 84-88.
[14]舒紫嫣,曾天伦,白璟秋等. 基于人脸识别的大学生微信助眠小程序设计与实现 [J]. 电脑编程技巧与维护, 2022, (06): 65-68.
[15]曾天伦,舒紫嫣,李健喆等. 基于人脸识别的音乐助眠系统 [J]. 信息与电脑(理论版), 2022, 34 (07): 194-196.
[16]马吉聪. 基于Django框架的糖尿病预测系统的设计与实现[D]. 云南师范大学, 2021. [17]高群霞,胡镜鸿. 基于微信小程序的“睡眠助手”设计与实现 [J]. 科技创新与应用, 2020, (34): 31-32.
“时光荏苒,岁月如梭”,四年的大学生涯在这里即将结束,我也即将离开我的母校,踏入社会,在这离开之际,借此机会,我首选要感谢的就是我的老师们,在这四年的学习、生活中,他们给了我很多的帮助,在我消极的时候鼓励我,帮助我走出困境,学习遇到困难的时候,每位老师都孜孜不倦;其次我要感谢我的指导老师,在开发本助眠小程序的时候遇到了很多困难,比如前期调查不仔细,功能模块设计的有问题,导师通过细心的沟通、讲解,慢慢让我对系统有了更进一步的了解,在系统开发框架的选择上,导师给我推荐了django,让我在系统的设计上更加省力,在这期间我对这两个框架还不够熟悉,都是导师耐心的讲解、指导,无论多晚,导师有多忙,总是第一时间为我答疑解惑,可以说没有导师的帮助,我是没有办法完成这个助眠小程序的,在这里我还要感谢我的同学们,他们无论在学习还是在生活中都给予了我很大的帮助,我相信我们的友谊会天长地久。
最后向所有关心我、帮助我的老师及同学们表示衷心的感谢!祝愿我的母校越来越辉煌,祝愿老师们桃李满天下,祝愿同学们前程似锦!
免费领取源码,请点赞关注私信博主