基于Spark的音乐推荐系统的设计与实现-计算机毕业设计源码83363

摘 要

在数字化时代,音乐已成为人们日常生活中不可或缺的一部分。随着音乐资源的爆炸式增长,如何从海量的音乐库中为用户推荐他们可能感兴趣的音乐成为了一个重要的问题。音乐推荐系统通过分析和挖掘用户的音乐偏好,为他们提供个性化的音乐推荐,从而改善用户的音乐体验。

传统的音乐推荐系统主要依赖于手工规则或简单的统计方法,这些方法在处理大规模数据时往往效率低下,且推荐效果有限。随着大数据技术的快速发展,基于Spark的音乐推荐系统应运而生。Spark作为一种分布式计算框架,具有高效的计算能力和强大的扩展性,可以处理海量数据并提供实时的推荐结果。

基于Spark的音乐推荐系统的设计与实现旨在利用Spark平台的优势,构建一个高效、准确的音乐推荐系统。该系统通过收集和分析用户的音乐行为数据,挖掘用户的音乐偏好,并基于这些偏好为用户推荐他们可能感兴趣的音乐。同时,该系统还可以根据用户的反馈和行为数据不断优化推荐算法,提高推荐效果。

本文将对基于Spark的音乐推荐系统的设计与实现进行详细介绍,包括系统的架构设计、数据处理流程、推荐算法的选择与优化等方面。希望通过本文的介绍,读者能够对基于Spark的音乐推荐系统有更深入的了解,并为相关领域的研究和实践提供参考。

关键词:音乐推荐系统;Spark;架构设计

Design and Implementation of a Music Recommendation System Based on Spark

Abstract

In the digital age, music has become an indispensable part of people's daily lives. With the explosive growth of music resources, how to recommend music that users may be interested in from a massive music library has become an important issue. The music recommendation system provides personalized music recommendations to users by analyzing and mining their music preferences, thereby improving their music experience.

Traditional music recommendation systems mainly rely on manual rules or simple statistical methods, which are often inefficient in processing large-scale data and have limited recommendation effects. With the rapid development of big data technology, Spark based music recommendation systems have emerged. Spark, as a distributed computing framework, has efficient computing power and strong scalability, which can process massive data and provide real-time recommendation results.

The design and implementation of a music recommendation system based on Spark aims to leverage the advantages of the Spark platform to build an efficient and accurate music recommendation system. The system collects and analyzes user music behavior data, mines user music preferences, and recommends music that users may be interested in based on these preferences. At the same time, the system can continuously optimize recommendation algorithms based on user feedback and behavioral data, improving recommendation effectiveness.

This article will provide a detailed introduction to the design and implementation of a music recommendation system based on Spark, including the system architecture design, data processing flow, selection and optimization of recommendation algorithms, and other aspects. I hope that through the introduction of this article, readers can have a deeper understanding of Spark based music recommendation systems and provide reference for research and practice in related fields.

Keywords:Music recommendation system; Spark; architecture design

目录

1绪论

1.1 研究背景

1.2 研究意义

1.3 国内外研究现状

1.4 论文组成结构

2开发工具及相关技术介绍

2.1开发技术说明:

2.2Python简介

2.3 spark框架介绍

2.4Mysql数据库

2.5 B/S体系工作原理

3系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.2 需求分析

3.3 系统操作流程

3.3.1信息添加流程

3.3.2信息删除流程

3.4本章小结

4系统设计

4.1 系统架构设计

4.2 系统功能结构

4.3 数据库设计

4.3.1 概念模型设计

4.3.2 逻辑结构设计

5系统实现

5.1 登录模块的实现

5.2 用户子系统模块的实现

5.2.1 用户首页模块

5.2.2 用户资料修改模块

5.2.3 资讯数据管理模块

5.2.4 音乐信息模块

5.3 管理员子系统模块的实现

5.3.1 管理员主页模块

5.3.2 用户管理模块

5.3.3 音乐分类管理模块

5.3.4 热门歌曲管理模块

5.3.5 轮播图模块

6系统测试

6.1 测试目的

6.2 测试用例

6.2.1 登录测试 

6.2.2 音乐资讯管理测试 

6.2.3 音乐资讯测试 

6.3 测试结果

结论

参考文献

致谢

1绪论

1.1 研究背景

在数字化音乐时代,随着音乐资源的爆炸性增长和用户个性化需求的提升,音乐推荐系统的重要性日益凸显。传统的音乐推荐方法,如基于规则的推荐和简单的统计方法,已难以满足大规模数据处理和实时推荐的需求。同时,随着大数据技术的快速发展,分布式计算框架如Apache Spark在数据处理和分析领域展现出了强大的潜力。Spark以其高效的数据处理能力、可扩展的分布式架构和丰富的机器学习库,为音乐推荐系统的设计与实现提供了新的机遇。

基于Spark的音乐推荐系统的研究背景,正是基于这样的技术发展趋势和市场需求。通过利用Spark的强大计算能力,音乐推荐系统可以实现对海量音乐数据的快速分析,挖掘用户的音乐偏好,并为用户提供个性化的音乐推荐服务。这样的系统不仅有助于提升用户的音乐体验,也有助于音乐平台优化资源配置,提高音乐作品的曝光率和传播效果。因此,基于Spark的音乐推荐系统的设计与实现,具有重要的研究价值和广阔的应用前景。

1.2 研究意义

基于Spark的音乐推荐系统的设计与实现,其研究意义深远且综合。这一系统能有效应对音乐库中海量数据的挑战,通过Spark分布式计算框架的高效处理能力,实现对大规模音乐数据的快速分析和处理。同时,该系统能够为用户提供个性化的音乐推荐服务,基于用户的音乐行为数据和偏好,挖掘出用户潜在的音乐兴趣,从而推送更符合其口味的音乐,提升用户的音乐体验。此外,该系统还能帮助音乐平台实现资源的优化配置,通过精确的推荐,使得更多优质的音乐作品能够被用户发现和欣赏,提高音乐作品的曝光率和传播效果。通过用户的反馈和行为数据,系统可以不断优化推荐算法,提高推荐的准确性和效率,形成良性循环,进一步提升用户体验和平台竞争力。

综上所述,基于Spark的音乐推荐系统的设计与实现,不仅具有技术上的创新和实践价值,更能在实际应用中为用户带来更好的音乐体验,为音乐产业的发展提供有力支持。

1.3 国内外研究现状

基于Spark的音乐推荐系统的设计与实现,在国内外研究现状方面呈现出不同的特点和发展趋势。

在国内,随着音乐产业的快速发展和数字化进程的加速,音乐推荐系统逐渐受到广泛关注。许多音乐平台开始积极探索基于Spark的音乐推荐系统,通过利用大数据技术和机器学习算法,提高推荐效果和用户满意度。一些知名的音乐平台,如网易云音乐、QQ音乐等,已经在这方面取得了一定的成果。然而,与国外相比,国内的研究和实践仍处于初级阶段,需要进一步加强技术研究和创新应用。

在国外,尤其是欧美地区,基于Spark的音乐推荐系统的研究与实践相对较为成熟。许多大型音乐平台,如Spotify、Apple Music等,已经成功应用了基于Spark的音乐推荐系统,实现了精准的音乐推荐和个性化服务。这些系统不仅具备高效的数据处理能力,还能够根据用户的偏好和行为数据不断优化推荐算法,提高推荐质量和用户体验。此外,国外的研究机构和学者也在不断探索和创新音乐推荐系统的技术和方法,为音乐产业的发展提供了有力支持。

综上所述,基于Spark的音乐推荐系统的设计与实现,在国内外研究现状方面存在一定的差异。国内尚需加强技术研究和创新应用,而国外则已经取得了一定的成果并持续推动着技术和方法的发展。随着技术的不断进步和应用场景的不断拓展,基于Spark的音乐推荐系统将在未来发挥更加重要的作用。

1.4 论文组成结构

第一章是绪论,本文章的开头部分,对本题目的研究背景意义和研究现状等一些做文字性的描述。

第二章研究了音乐推荐系统的所采用的开发技术和开发工具。

第三章是系统分析部分,包括系统总体需求描述、功能性角度分析系统需求、非功能性等各个方面分析系统是否可以实现。

第四章是系统设计部分,本文章的重要部分,提供了系统架构的详细设计和一些主要功能模块的设计说明。

第五章是系统的具体实现,介绍系统的各个模块的具体实现。

第六章在前几章的基础上对系统进行测试和运行。

最后对系统进行了认真的总结,以此对未来有一个新的展望。

2开发工具及相关技术介绍

2.1开发技术说明:

本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于python的spark框架进行开发。

前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。

后端部分:采用spark作为开发框架,同时集成Redis等相关技术。

 2.2Python简介

Python 是一个高层次的脚本语言结合了解释性、编译性、互动性和面向对象的。Python 的设计,相比其他语言经常使用英文关键字和其他语言的一些标点符号,它具有比其他语言更有特色语法结构,具有很强的可读性。

解释型语言:类似于Python和Perl语言,这意味着开发过程中没有了编译这个环节。

交互式语言:可以在一个 Python 提示符 >>> 后直接执行代码。

面向对象语言:Python支持面向对象的风格或代码封装在对象的编程技术。

2.3 spark框架介绍

Spark Streaming:构建在Spark上处理Stream数据的框架,基本的原理是将Stream数据分成小的时间片段(几秒),以类似batch批量处理的方式来处理这小部分数据。Spark Streaming构建在Spark上,一方面是因为Spark的低延迟执行引擎(100ms+),虽然比不上专门的流式数据处理软件,也可以用于实时计算,另一方面相比基于Record的其它处理框架(如Storm),一部分窄依赖的RDD数据集可以从源数据重新计算达到容错处理目的。此外小批量处理的方式使得它可以同时兼容批量和实时数据处理的逻辑和算法。方便了一些需要历史数据和实时数据联合分析的特定应用场合。

2.4Mysql数据库

Mysql 经过多次的更新,功能层面已经非常的丰富和完善了,从Mysql4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的Mysql支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷。

针对本文中设计的音乐推荐系统在实际的实现过程中,最终选择Mysql数据库的主要原因在于在企业的应用系统应用及开发的过程中会存在大量的数据库比较频繁的操作,而且数据的安全性要求也是非常的高。综合这些因素,最终选择安全性系数比较高的Mysql来对音乐推荐系统后台数据进行存储操作。

数据库管理系统的总体结构图如下图所示。

图2-1 数据库组成结构

2.5 B/S体系工作原理

B/S架构采取浏览器请求,服务器响应的工作模式。

用户可以通过浏览器去访问Internet上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息;

而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中;

Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的Internet。

在 B/S 模式中,用户是通过浏览器针对许多分布于网络上的服务器进行请求访问的,浏览器的请求通过服务器进行处理,并将处理结果以及相应的信息返回给浏览器,其他的数据加工、请求全部都是由Web Server完成的。通过该框架结构以及植入于操作系统内部的浏览器,该结构已经成为了当今软件应用的主流结构模式。

3系统分析

3.1 可行性分析

在软件开发的过程中,可行性分析是至关重要的,它旨在评估问题的可行性,以便尽可能快地解决,同时也要考虑到不同的解决方案的优势和劣势,以及实施这些方案所带来的经济效益。通过对音乐推荐系统的可行性分析,我们可以从技术、操作和经济三个方面来评估其可行性,从而为其提供有效的支持和保障。

3.1.1 技术可行性

基于Spark的音乐推荐系统的设计与实现在技术上是完全可行的。Spark作为一种高效、可扩展的分布式计算框架,具备处理海量数据的能力,并且其内置的机器学习库MLlib提供了丰富的算法和工具,可以直接应用于音乐推荐系统的开发中。通过结合Spark的数据处理能力,我们可以构建一个快速、准确的音乐推荐系统,实现对用户音乐偏好的深入挖掘和个性化推荐。同时,Spark的分布式特性使得系统可以方便地扩展和部署,以满足不同规模和需求的应用场景。因此,从技术角度来看,基于Spark的音乐推荐系统的设计与实现是完全可行的,并且有望在实际应用中取得良好的效果。

3.1.2 经济可行性

基于Spark的音乐推荐系统的经济可行性也非常高。Spark作为一个开源框架,其使用成本相对较低,企业无需支付昂贵的许可费用。通过利用Spark的高效计算能力,音乐推荐系统可以实现对海量数据的快速处理和分析,帮助企业更好地了解用户需求,提高用户满意度,从而增加用户粘性,提升业务收入。此外,基于Spark的音乐推荐系统还可以为企业提供更精准的广告投放和营销策略,进一步提高企业的经济效益。因此,从经济角度来看,基于Spark的音乐推荐系统的设计与实现具有很高的可行性,能够为企业带来显著的经济效益。

3.1.3 操作可行性

音乐推荐系统的前台页面简洁易懂,无论是系统管理员还是普通用户,只要电脑连接到网络,就可以轻松访问网站,而且不需要任何操作指导,只要输入正确的URL地址,就可以轻松完成所有的操作。由于无需任何复杂的环境配置,这个系统非常简单,易于操作,因此它是一个非常实用的工具。

3.2 需求分析

为了满足用户的需求,音乐推荐系统将系统划分为两个部分:管理员和普通用户,每个部分都有独特的功能,以便更加便捷地管理信息。此外,系统还具有简单易操作的特点,可以更加精确、全面地实现用户的需求。以下是关于该功能的详细描述:

普通用户模块:

注册登录:普通用户需要能够注册新账户并进行登录,以便能够访问系统的各项功能和个人信息。

首页:提供用户一个对系统的概览,展示最新的音乐论坛帖子、公告、音乐资讯、热门歌曲等内容,以及系统的功能入口,让用户快速了解平台的内容和功能。

音乐论坛:为用户提供一个交流和讨论的平台,让用户可以分享音乐观点、发表评论、提出问题等。

公告:系统应该发布重要的通知和公告信息,如活动通知、系统更新等,以确保用户能够及时获取相关信息。

音乐资讯:提供音乐相关的资讯内容,如音乐新闻、专辑推荐等,丰富用户的音乐知识和信息获取。

留言板:用户可以在留言板上发表对系统或音乐的意见、建议或留言,与其他用户进行交流和互动。

热门歌曲:展示当前热门的音乐作品,让用户快速了解最受欢迎的音乐。

音乐信息:提供系统中的音乐信息,包括歌曲名称、歌手、专辑、评分等,方便用户浏览和选择喜爱的音乐。

我的账户:用户个人账户的管理入口,包括账号、密码、个人信息等。

个人首页:展示用户的个人信息和基本操作入口,如修改密码、修改个人资料等。

音乐评价:用户可以对听过的音乐进行评价和打分。

收藏:用户可以收藏喜欢的音乐,方便后续查看和操作。

管理员模块:

登录:管理员需要通过用户名和密码进行登录,以获取管理后台的访问权限。

后台首页:提供管理员一个概览系统的主要信息和功能入口,包括系统概况、最新通知、待处理事项等内容,方便管理员了解系统的运行情况。

系统用户:管理员可以管理系统中的用户信息,包括添加、编辑、删除用户等操作,确保用户信息的完整性和准确性。

音乐分类管理:管理员可以管理系统中的音乐分类信息,包括添加、编辑、删除分类,以维护音乐分类的完整性和准确性。

热门歌曲管理:管理员可以管理系统中的热门歌曲信息,包括添加、编辑、删除热门歌曲,确保热门歌曲的准确性和更新性。

音乐评价管理:管理员可以管理用户对音乐的评价信息,包括审核评价内容、处理用户反馈等操作。

音乐信息管理:管理员可以管理系统中的音乐信息,包括添加、编辑、删除音乐信息,确保音乐信息的准确性和更新性。

轮播图管理:管理员可以管理系统首页的轮播图设置,包括添加、编辑、删除轮播图等操作,以提升系统的用户体验和视觉效果。

留言管理:管理员可以管理用户在系统中的留言内容,包括审核留言、删除违规内容等操作。

公告管理:管理员可以发布、编辑、删除系统的公告信息,确保信息及时传达给用户。

资源管理:管理员可以管理系统提供的资源信息,包括音乐资讯、分类列表等内容,确保信息的准确性和更新性。

交流管理:管理员可以管理用户在音乐论坛上的交流内容,包括审核帖子、处理用户违规行为等操作。

权限管理:管理员可以设置和管理系统各项功能的权限,以确保系统的安全和稳定运

行。

根据以上功能需求分析得出普通用户用例图如下所示。

图3-1 普通用户用例图

管理员用例图如下所示。

图3-2 管理员用例图

根据用例图,对一些重要的用例进行描述。

登录用例描述如下表所示。

表3-1 登录用例描述

个人信息管理用例描述如下表所示。

表3-2 个人信息管理用例描述

音乐搜索用例描述如下表所示。

表3-3音乐搜索用例描述

音乐用例描述如下表所示。

表3-4音乐用例描述

3.3 系统操作流程

3.3.1信息添加流程

音乐推荐系统可以实现快速、准确地收集和处理各种信息,而且在使用过程中,只有在按照指定的界面和指定的参考文献,才能够正确地获取和处理信息,而若信息未能满足预期,就会被退出第一步,并且在第二步中,还会继续检查信息的准确性,以确保最终的结果能够满足预期的目标。

图3-3 信息添加流程图

3.3.2信息删除流程

无论是何种用户角色,只要进入了不正常的系统操作界面,就可以使用不同的信息内容来进行操作。当用户尝试删除系统中的数据时,必须先ACK这些数据是否已经被删除,如果没有,就应该按照图3-4的指示进行操作,以免影响系统的正常运行。

图3-4信息删除流程图

3.4本章小结

本章主要通过对音乐推荐系统的可行性分析、功能需求分析、系统用例分析,确定整个音乐推荐系统要实现的功能。同时也为音乐推荐系统的代码实现和测试提供了标准。

4系统设计

4.1 系统架构设计

当前,B/S架构的数据访问模式已经大大改善:用户只需要打开网站,就能够获取系统的信息,而且,系统会根据用户的需要,自动响应并解决所有的问题。此外,用户还能够查阅服务器的处理结果,从而更好地了解数据的流转情况。音乐推荐系统采用三层结构,即视觉-模拟-决策层。其中,视觉层负责接收来自用户的信息并将其呈现给用户;而模拟层则负责完成与用户有关的任务,包括组织信息、进行流程优化、提升用户体验。决策层则负责协商决策,并确保两层结果的一致性。

系统架构图如下图所示。

图4-1 系统架构图

4.2 系统功能结构

一旦您访问了这款应用,您需要完成一项重大的任务:通过认证,获得相应的权限。一旦您完成了认证,您将可以访问到一些关于您的服务,包括:后台首页、系统用户、音乐分类管理、热门歌曲管理、音乐评价管理、音乐信息管理、系统管理、留言管理、公告管理、资源管理、交流管理、权限管理等。这个界面非常清晰明了,通过指引您就能轻松地完成各种任务。

系统的功能结构图如下所示。

图4-2 系统功能结构图

4.3 数据库设计

一个优秀的系统必须具备完善的后台数据库,就像建筑物一样,它不是一蹴而就的,而是需要经过精心设计,以确保其稳固可靠。只有将数据库设计得完善,并且考虑到各个方面,才能保证系统的可靠性,避免出现任何问题。

4.3.1 概念模型设计

下面是整个系统中主要的数据库表总E-R实体关系图。

图4-3 系统E-R图

4.3.2 逻辑结构设计

在这一步中,我们将概念转换为实际的数据。由于数据库中包含了大量的信息,我们只展示了一些表格。

表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

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

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]用来搜索指定类型的论坛帖

表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

更新时间:

表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:

表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

email

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

回复状态

表music_classification (音乐分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

music_classification_id

int

10

0

N

Y

音乐分类ID

2

music_genre

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

更新时间

表music_data (音乐数据)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

music_data_id

int

10

0

N

Y

音乐数据ID

2

song_title

varchar

64

0

Y

N

歌曲名称

3

singer_name

varchar

64

0

Y

N

歌手名称

4

album_name

varchar

64

0

Y

N

专辑名称

5

release_time

varchar

64

0

Y

N

发布时间

6

lyrics_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

更新时间

表music_evaluation (音乐评价)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

music_evaluation_id

int

10

0

N

Y

音乐评价ID

2

song_title

varchar

64

0

Y

N

歌曲名称

3

music_genre

varchar

64

0

Y

N

音乐类型

4

singer_name

varchar

64

0

Y

N

歌手姓名

5

release_time

date

10

0

Y

N

发行时间

6

album_name

varchar

64

0

Y

N

专辑名称

7

regular_users

int

10

0

Y

N

0

普通用户

8

user_name

varchar

64

0

Y

N

用户姓名

9

scoring_score

varchar

64

0

Y

N

打分分数

10

evaluation_content

text

65535

0

Y

N

评价内容

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表music_information (音乐信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

music_information_id

int

10

0

N

Y

音乐信息ID

2

song_title

text

65535

0

Y

N

歌曲名称

3

singer_name

text

65535

0

Y

N

歌手名称

4

album_name

text

65535

0

Y

N

专辑名称

5

release_time

text

65535

0

Y

N

发布时间

6

song_image

varchar

255

0

Y

N

歌曲图片

7

lyrics_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

更新时间

表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

更新时间:

表popular_songs (热门歌曲)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

popular_songs_id

int

10

0

N

Y

热门歌曲ID

2

song_title

varchar

64

0

Y

N

歌曲名称

3

music_genre

varchar

64

0

Y

N

音乐类型

4

singer_name

varchar

64

0

Y

N

歌手姓名

5

release_time

date

10

0

Y

N

发行时间

6

singer_photos

varchar

255

0

Y

N

歌手照片

7

album_name

varchar

64

0

Y

N

专辑名称

8

playback_quantity

int

10

0

Y

N

0

播放数量

9

music_audio

varchar

255

0

Y

N

音乐音频

10

music_introduction

text

65535

0

Y

N

音乐简介

11

music_content

text

65535

0

Y

N

音乐内容

12

hits

int

10

0

N

N

0

点击数

13

praise_len

int

10

0

N

N

0

点赞数

14

recommend

int

10

0

N

N

0

智能推荐

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

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已取消

表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

更新时间:

表song_information (歌曲信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

song_information_id

int

10

0

N

Y

歌曲信息ID

2

song_title

varchar

64

0

Y

N

歌曲名称

3

singer_name

varchar

64

0

Y

N

歌手名称

4

album_name

varchar

64

0

Y

N

专辑名称

5

release_time

varchar

64

0

Y

N

发布时间

6

lyrics_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

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

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

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:


5系统实现

5.1 登录模块的实现

在登录界面中输入用户名+密码,然后选择相应的角色,点击“登录”按钮,系统会在用户数据库表中匹配食堂

用户的帐户,如果用户名+密码正确,则会登录到系统中每个用户的主管理界面,否则会提示相应的信息,如果是忘记了密码,请返回登录界面。

用户登录流程图如下所示。

图5-1 用户登录流程

想要进入系统用户输入准确的姓名和密码,系统才会自动启动,并且会对用户的身份进行检查,若发现身份信息不符合要求,则会自动返回主界面,以便用户可以安全的登录使用。

系统登录界面如下图所示。

图5-2 系统登录界面

登录关键代码如下:

 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))

5.2 用户子系统模块的实现

5.2.1 用户首页模块

通过输入地址,用户可以轻松访问音乐推荐系统的首页,该首页由top、left、down和center四个部分组成,用户可以通过@ include来进一步了解该网站的内容。

首页载入流程图如下所示。

图5-3 首页载入流程

首页载入流程:系统首先连接数据库,调整显示界面参数,从中提取出数据表,使用html格式创建显示模板,根据添加时间顺序排列数据,并以模板指定的位置显示出来,然后重新调整显示界面,最后断开数据库的连接。

首页如下图所示。

图5-4 首页界面

5.2.2 用户资料修改模块

当您完成/注册操作,您就能够更新您的个人资料。您需要确保您的inputname值能够和您所属的实体类型的参数完全对应。当您更新您的个人资料时,您的账号密码应当保持完整,不能出现任何错误。您需要确保您的账号密码是唯一的,才能继续使用。

用户资料修改流程图如下所示。

图5-5 用户资料修改

用户资料修改界面如下图所示。

图5-6用户资料修改界面

5.2.3 资讯数据管理模块

管理员可以使用python技术来查询资讯数据,这样他们就可以根据自己的需求,快速地更新和维护这些信息。在访问过程中,用户可以根据自己的偏好,自由地选择要修改或删除的信息,而且,如果用户选中的信息超出了预定的范围,系统将会弹出一个窗口,提醒用户只能选择一条数据,而如果用户没有选中,系统将会弹出一个窗口,要求用户重新选择一条新的信息。当用户选择进行更改时,系统会根据用户的id进行查询,并将结果返回到更新页面。用户可以在更新页面中更新刚刚选择的信息。用户点击确认后,from表单会将更新的数据提交到系统,并保存到数据库中。这意味着,如果提交的数据在数据库中,用户可以进行更新,否则将被保存。

音乐资讯添加流程图如下所示。

图5-7 音乐资讯添加流程图

音乐资讯展示界面如下图所示。

图5-8 音乐资讯界面

音乐资讯关键代码如下:

WSGI_APPLICATION = "app.wsgi.application"

DATABASES = {

    "default": {

        "ENGINE": "django.db.backends.mysql",

        "NAME": "project93355",

        "USER": "root",

        "PASSWORD": "root",

        "HOST": "127.0.0.1",

        "PORT": "3306",

    }

}

5.2.4 音乐信息模块

管理员管理音乐信息,用户点击想要音乐进入音乐信息界面,浏览器自动播放该音乐,音乐信息通过调用Vue的<video>分类,将音乐信息文件路径参数传入,完成音乐信息实现的歌曲播放。

音乐信息流程图如下图所示。

图5-9 音乐信息流程图

音乐信息界面如下图所示。

图5-10 音乐信息界面

5.3 管理员子系统模块的实现

5.3.1 管理员主页模块

当您注册并使用该账号时,您将会进入一个新的网站。该网站的首部分为top、left、center三个部分,其中@ include部分提供了一个详细的概述。该部分将会提供您的个人资料,例如您的账号、当前时间、当前使用的浏览器版本、服务器的端口数、您的授权、您的ip地址、您的操作系统类型、您的编程语言、您的编程人员、您的编程老师以及您的编程时间。left区域被设计成一个完整的系统菜单,它由1级、2级两个层次组成,通过jquery将1级的功能扩充到2级。

管理员功能界面如下图所示。

图5-11管理员功能界面

5.3.2 用户管理模块

通过使用sql语句,用户可以访问yhzhgl中的用户信息,并且可以通过PageManager.getPages (url, 4, sql, request)获取一个ArrayList对象,以便更好地管理和分析用户表。通过for循环,我们可以从ArrayList中提取出所有数据,然后将其转换为键值对,从而在Python页面上进行解析。

用户管理界面如下图所示。

图5-12用户管理界面

用户管理关键代码如下:

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": "已存在"}}

5.3.3 音乐分类管理模块

在添加、删除或修改音乐分类时,系统会根据音乐的状态来决定是否允许使用。如果允许,系统会提供相应的链接,以便用户访问。如果不允许,系统将会在后台查询音乐的状态,并决定是否允许使用。当您点击更改链接按钮时,您将会进入一个更改信息的页面。在完成数据填写之后,您将会将其提交到后台,并对数据库中的记录进行更新。

当添加音乐分类时,系统将会弹出一个页面,用户可以根据自己填写的音乐分类来查询编号是否已经存在。一旦填写完成,系统将会将其提交至后台,并调用相应的服务,将其插入到数据库中。

音乐分类添加流程图如下图所示。

图5-13音乐分类添加流程图

音乐分类的界面如所示。

图5-14音乐分类列表界面

图5-15音乐分类添加界面

5.3.4 热门歌曲管理模块

对于热门歌曲管理,可能涉及到多种方式,如添加、移除、更换和检索。举个例子,如果要添加一个新的热门歌曲,可能会从视觉上向系统发出请求,然后系统会根据这些请求来进行处理。如果需要更多,可能会从系统的顶部进行处理,然后再从下一个系统中进行检索。

热门歌曲管理的流程如所示。

图5-16歌门歌曲管理流程

歌门歌曲界面如所示。

图5-17热门歌曲列表界面

图5-18热门歌曲添加表界面

5.3.5 轮播图模块

在使用这个应用程序之前,您必须确保您的文章已经被录入了相应的管理功能。如果您想更新文章的内容,您只有在文章的状态被确认为允许更新的条件下,您才有权利更新文章。如果您想更新文章,您只有在您点击更新文章的链接之前,文章的状态将被检测并确认。当您点击更换链接的按钮,您将进入一个更换信息的页面,在完成更换之前,您需要将所有的数据都输入至系统,以便进行更加精确的统计和分析。

当您添加轮播图时,系统将会弹出一个页面,用户可以根据自己填写的轮播图标题来查询轮播图是否已经存在。一旦完成了数据填写,系统将会调用相应的服务,将其插入到数据库中。

轮播图流程图如下图所示。

图5-19轮播图流程图

轮播图的界面如所示。

图5-20轮播图界面


6系统测试

6.1 测试目的

在这款产品正式投入使用之前,试用是至关重要的一步。即使某些部分的开发没有出现任何问题,将多个模块组合在一起仍然可能会出现矛盾。就像每个人都有自己的特点,但如果混杂在一起,就会显得凌乱不堪,因此必须确保彼此之间能够达成默契的配合。在测试中,应该仔细检查其中的每一项内容,以确保它们符合预期的标准。如果发现有一些偏离,应该及时进行调整,以确保最终的结果能够达到预期的目标。

6.2 测试用例

6.2.1 登录测试 

登录测试用例如下表所示。

表6-1 登录测试用例

6.2.2 音乐资讯管理测试 

音乐资讯测试用例如下表所示。

表6-3 添加音乐资讯测试用例

6.2.3 音乐资讯测试 

音乐测试用例如下表所示。

表6-4 添加音乐测试用例

6.3 测试结果

经过测试,得到测试结果如下表所示。

表6-5 测试结果

结论

音乐推荐系统的设计,通过互联网来解决实现信息化的网站系统,通过我四年所学的所有专业知识整合一起,进行对音乐推荐系统进行开发设计,当然在真正着手来做的时候遇到了很多问题,一个是网站的技术问题,一个是自己之前没有单独开发过程序,动手实践比较少,面对问题的同时,自己的自信心也受到了一些打击,不过我也是快速的调整自己的状态,老师与同学讨论的方法解决了所有的困难。

毕业设计是我们所学知识应用的最佳体现,也是在考核我们四年中所学的所有的专业知识及技术应用情况,通过这样毕业设计可以更好的得到锻炼及对所学知识的复习及运用,也是一种训练和实践。音乐推荐系统的实现,不仅巩固了我以前的知识,还对学到的知识通过结合技术进行详细了解,还结合了对跨学科效果的深入理解。

在以后我的工作中,我仍然继续努力我的计算机方面的技术,让我在后期的平台开发中可以更好更快的实现需求功能。我相信自己可以胜任更多的好工作并在工作领域做出更大的贡献。

回顾毕业设计的整个过程,既付出了努力与汗水也收获了很多难以忘怀的美好经历。虽然在系统开发过程中经历了各种各样的困难,自己也在不断研究探索,可是系统的实现仍有许多不足之处。但是经过系统编程工作让我有了更多的信心,我相信在未来的路上,我会走的更好。

参考文献

[1]张碧玉.基于知识图增强图神经网络和情感分析的音乐推荐系统[D].南京邮电大学,2023.DOI:10.27251/d.cnki.gnjdc.2023.001401.

[2]郭静菡.面向用户偏好的个性化音乐智能推荐系统[J].自动化技术与应用,2023,42(10):108-112.DOI:10.20033/j.1003-7241.(2023)10-0108-05.

[3]李林,谭澜兰,覃岭.基于语义分析的音乐智能推荐系统的设计与实现[J].电脑知识与技术,2023,19(27):36-39.DOI:10.14004/j.cnki.ckt.2023.1423.

[4]杨帆.基于项目邻域协同过滤的音乐推荐系统实现[J].电声技术,2023,47(09):91-93.DOI:10.16311/j.audioe.2023.09.027.

[5]李津.基于知识图谱的个性化音乐推荐系统设计与实现[J].科学技术创新,2024,(02):127-130.

[6]Magnuski M ,Średniawa W ,Paluch K , et al.Pylabianca: comprehensive and user‑friendly Python package for single‑neuron data analysis.[J].Acta neurobiologiae experimentalis,2023,83(4):432-446.

[7]JaramilloJimenez A ,MantillaRamos J Y ,Tovar D , et al.Reproducible Python workflow for multi‐site resting‐state EEG analysis: From raw data to group classification[J].Alzheimer's  Dementia,2023,19(S14):

[8]C. P F ,R. J M .Davos: A Python package “smuggler” for constructing lightweight reproducible notebooks[J].SoftwareX,2024,25

[9]Jakub W ,Wojciech S .Version [1.1]- [pyFDM: A python library for uncertainty decision analysis methods][J].SoftwareX,2024,25101607-.

[10]Ángel J M ,Ricardo G ,López L M G , et al.PyKernelLogit: Penalised maximum likelihood estimation of Kernel Logistic Regression in Python[J].Software Impacts,2024,19

[11]周欢.融合时间信息的音乐推荐系统研究[D].太原师范学院,2023.DOI:10.27844/d.cnki.gtysf.2023.000189.

[12]刘昊.基于深度学习和协同过滤的音乐推荐系统研究[D].吉林建筑大学,2023.DOI:10.27714/d.cnki.gjljs.2023.000421.

[13]马志远.基于改进硬负样本和神经网络的音乐推荐系统[D].阜阳师范大学,2023.DOI:10.27846/d.cnki.gfysf.2023.000203.

[14]杨建,刘磊,康欣欣.基于用户行为和音频特征的音乐推荐系统设计与实现[J].无线互联科技,2023,20(09):55-57.

[15]姚勇林.基于深度学习的个性化音乐推荐系统[D].电子科技大学,2023.DOI:10.27005/d.cnki.gdzku.2023.000587.

[16]龙远婷,王屯屯.推荐系统在音乐领域的应用研究[J].电子技术与软件工程,2022,(24):214-218.

[17]周峰.基于Spark的混合策略音乐推荐系统的研究与实现[D].南京邮电大学,2022.DOI:10.27251/d.cnki.gnjdc.2022.001529.

[18]潘子月.基于Hadoop和Storm的音乐推荐系统设计[D].南京邮电大学,2021.DOI:10.27251/d.cnki.gnjdc.2021.001670.

[19]周欢,李宏滨.融合时间信息的音乐推荐算法研究[J].信息记录材料,2022,23(09):220-222.DOI:10.16009/j.cnki.cn13-1295/tq.2022.09.031.

[20]王正青.基于图像情感分类的音乐推荐系统的设计与实现[D].东南大学,2022.DOI:10.27014/d.cnki.gdnau.2022.003346.

致谢

眨眼之间,大学生活就要结束了。在本文的最后,我要感谢我和蔼可亲的导师、团结有爱的同学的帮助和鼓励。此刻,我找不到感谢之词可以用来表达我最深切的感激之情。尤其感谢我的指导老师,在选题的过程中与我进行了深入的交流,在毕业设计期间给我提供了一些指导。四年的学习生活让我受益良多,老师们的丰富的学术知识、认真负责的学习态度让我受益匪浅。在此,我深深地感谢那些曾经给予我帮助和指导的老师!

我们的论文得益于许多学者的贡献,他们的研究成果为我们提供了宝贵的指导,使我们能够更好地完成这篇文章。感谢我的同学和朋友在我的写作以及排版过程中给予热情的帮助,才使得我比较顺利的完成了这篇论文。

感谢大学里遇见的朋友,你们在我这四年里留下无数的温暖和快乐,让我对这个校园多了一份留念。最后,感谢我的父母、辅导员张老师、班长白海鹏,以及室友们对我大学生活上的关心和理解,让我能保持乐观和追求我所热爱的。尽管我的能力有限,但我仍然尽力去完善这篇论文,并且诚挚地希望各位老师和学友能够给予宝贵的指导与意见!

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

  • 28
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值