摘 要

随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。

本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采django技术和mysql数据库来完成对系统的设计。整个开发过程首先对在线音乐网站进行需求分析,得出在线音乐网站主要功能。接着对在线音乐网站进行总体设计和详细设计。总体设计主要包括管理功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括在线音乐网站数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对在线音乐网站进行了功能测试,并对测试结果进行了分析总结,得出在线音乐网站存在的不足及需要改进的地方,为以后的在线音乐网站维护提供了方便,同时也为今后开发类似在线音乐网站提供了借鉴和帮助。

在线音乐网站开发使系统能够更加方便快捷,同时也促使在线音乐网站变的更加系统化、有序化。系统界面较友好,易于操作。

关键词:在线音乐网站; Mysql数据库;python

                                                   Django Online Music Website

Abstract

With the development of society, every aspect of society is taking advantage of the advantages of the information age. The advantages and popularity of the Internet make the development of various systems necessary.

This article is based on practical application as the development background, using software engineering principles and development methods. It mainly uses django technology and MySQL database to complete the design of the system. The entire development process begins with a demand analysis of the django online music website, and concludes with the main functions of the django online music website. Then, the overall design and detailed design of django online music website are carried out. The overall design mainly includes management function design, system overall structure design, system data structure design, and system security design; The detailed design mainly includes the implementation of database access to django online music website, the specific implementation of main functional modules, and the key code for module implementation. Finally, a functional test of django online music website was conducted, and the test results were analyzed and summarized. The shortcomings and areas for improvement of django online music website were concluded, which provided convenience for the maintenance of django online music website in the future, and also provided reference and assistance for the development of similar django online music websites in the future.

The development of django online music website makes the system more convenient and efficient, and also promotes django online music website to become more systematic and orderly. The system interface is friendly and easy to operate.

Key words: django online music website; MySQL database; python

目  录

在线音乐网站

摘 要

Django Online Music Website

Abstract

1 系统概述

1.1课题背景

1.2 课题意义

1.3开发现状

1.3 主要内容

2 系统开发环境

2.1 python框架

2.2 python简介

2.3访问数据库实现方法

2.4系统对MySQL数据库的两种连接方式

2.5 MySql数据库

3 需求分析

3.1 系统设计

3.2需求分析概述

3.3 系统可行性分析

3.4经济可行性

3.5操作可行性:

3.6系统流程和逻辑

4系统概要设计

4.1 概述

4.2 系统结构

4.3 数据库设计

4.3.1 数据库实体

4.3.2 数据库设计表

5系统详细设计

5.1管理员功能模块

5.2系统前台前端功能模块

5.3用户功能模块

6 系统测试

6.1 测试理论

6.2 测试方法及用例

6.3测试结果

结论

致 谢

参考文献

1 系统概述

1.1课题背景

随着我国网民的增加,也促进了在线音乐系统的开发。随着网络技术的发展,人们在利用网络学习的同时,也在享受着网络带来的各种附带产品所产生的效应,如网络游戏,网络歌曲。在线音乐系统正是在这样的需求前提下应运而生,给人们的日常生活带来了极大的乐趣,让人们在繁忙疲惫的工作之后可以进行休闲。基于此种现状,在充分分析了该行业的市场前景,调研了用户需求之后,在线音乐系统也就不运而生了。

作为在线音乐系统的网络载体,在线音乐系统在创作、传播、欣赏方式等方面对流行音乐的发展都产生了前所未有的影响:

(1)电脑网络技术的发展使人们通过在线音乐系统接触到了更多的流行音乐。

(2)网民数量的激增使更多的人们通过在线音乐系统接触到了流行音乐。

(3)在线音乐系统为流行音乐创作提供了更多的便利。

(4)在线音乐系统刺激了流行音乐的传播。

(5)在线音乐系统使流行音乐的欣赏方式发生了改变。

(6)在线音乐系统不但刺激了流行音乐的传播,而且也刺激了电子数码产品的频繁更新换代。

1.2 课题意义

社会主义进入新时代,经济实力越来越强。我们也变得越来越忙碌、对生活的要求也变得更加严格,对快速和方便的服务的需求也在逐渐增加。因此,对校园的管理、服务的要求也越来越严格。为适应时代的发展,音乐开始广泛地使用电脑来进行管理,并推出在线音乐网站。

于此同时,实现在线音乐网站的计算机化也是顺应时代潮流的举措,现如今预约类型正逐渐增加,浩繁的信息令科技馆迎来管理上的难题。科技馆进入高速发展的时代,科技馆的管理工作变得越来越困难,在这一客观需要的推动下,建立、完善、发展在线音乐网站,可以为管理员带来极大的方便。

本系统即为方便管理员和用户而制作的在线音乐网站,结合了用户的需求,设计出的一个基于python、MySQL的在线音乐网站。

1.3开发现状

1.国外研究现状

据美国唱片行业协会(RIAA)表示,在2007年只占全美音乐市场3%的在线音乐服务现如今已占到了该市场的21%。借助于美国良好的音乐版权保护和Pandora、iTunes Radio、Rhapsody、Spotify等公司的努力,美国音乐市场从2009年至今一直维持在70亿美元左右的规模。在线音乐服务达到了14亿美元,同比上升了39%。在所有的数字音乐格式中,像Spotify、Rdio和Beats Music这样的付费式订阅服务的增长速度最快,在2013年达到了6.28亿美元,同比增长57%。而像iTunes那样的提供永久数字下载服务的营收则下滑了1%,降至28亿美元。苹果iTunes平台模式使得苹果一直领跑在线音乐市场。

2.国内研究现状

中国音乐产业没能像欧美国家一样经历时间的洗礼,短短十几年的时间,音乐产业在成长初期就碰上了野蛮的互联网,“避风港”原则也让音乐版权一度处于架空的状态。但随着近年来的发展,音乐产业逻辑开始清晰,监管层的法律也慢慢完善,大公司和资本密集进入也让音乐版权的价值开始不断提升。

2014年7月,阿里收购虾米,并成功争夺《中国好声音》独家音乐版权;9月,QQ音乐与杰威尔音乐、华研国际、英皇娱乐、美妙音乐、华谊兄弟音乐等唱片公司达成进驻合作协议,并在移动端新增了独家版块。

版权成本不断提高的同时,中国在线音乐的商业模式也在尝试一些新的改变。像腾讯、阿里、网易等,都是大部分音乐向用户免费、增值服务(比如更高的音质等)收费。

增值服务收费的做法会比直接针对音乐作品收费更令用户容易接受,但这样的收入增长速度可能并不是非常明显。

2013年中国数字音乐市场规模达440.7亿元,其中无线音乐市场规模达397.1亿元,在线音乐市场规模达43.6亿元。2013年数字音乐用户达4.53亿人以上。数字音乐的传播、消费、体验模式日新月异,具有巨大的市场发展潜力。

中国在线音乐市场发展趋势非常良好,国内的很多在线音乐系统也是发展速度,比如QQ音乐、百度音乐、酷狗音乐、汽水音乐、豆瓣音乐等,它们都提供着高品质的音乐服务。但是这当中也存在着很多的问题。比如版权问题,文化安全问题,政府管理问题等。其中版权问题是中国在线音乐产业发展道路上最大的绊脚石,亟需解决。在良好的版权保护下,在线音乐产业才能发展的更好更快,音乐人的创作动力也会得到巨大的提升。

虽然在线音乐发展状态良好,但也不可避免的存在着一些问题。其中版权问题就是国内数字音乐发展中不可逾越的羁绊,版权问题主要表现是盗版音乐作品的猖獗,各类拷贝音乐未经授权便上架销售,这其中必然就带来了一些低品质、不完整的音乐产品,扰乱了整个数字音乐正在蓬勃发展的市场。无线音乐也同样遇到了这样的情况,盗版已经成为国内数字音乐健康发展的最大障碍,同时也扰乱了行业秩序。虽然无线音乐也受到过一些挑战,但无线数字音乐已经成为音乐行业发展的主力军,纵看整个数码行业和市场,一直都是面临着机遇和挑战,相信在未来的几年里,数字音乐产业依然会是炙手可热的,非常有竞争力,无线音乐市场的潜力不容小觑。

中国音乐在大多数音乐人的眼中还是一个朝阳产业,但在互联网时代,机遇与挑战并存,如何把握并成就中国的数字音乐,还需要人们不断地发现和创造,抓住需求和新的趋势。

1.3 主要内容

在线音乐网站从功能、数据流程、可行性、运行环境进行需求分析。对在线音乐网站的数据库、功能进行了详细设计,分析了主要界面设计和相关组件设计,在线音乐网站的具体实现进行了介绍。从数据库中获取数据、向数据库中写入数据,实现系统直接对数据库进行各种数据库查询、插入、删除、更新等操作,在网页中加入动态内容,从而实现在线音乐网站所需要的各种基本功能。

2 系统开发环境

2.1 开发技术说明

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

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

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

2.2 Django框架介绍

Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Django框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:

1.6.1 用于创建模型的对象关系映射;

1.6.2 为最终用户设计较好的管理界面;

1.6.3 URL 设计;

1.6.4 设计者友好的模板语言;

1.6.5 缓存系统。

Django(发音:[`dʒæŋɡəʊ]) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计。Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。

Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。

由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times评选为2013 SD Times 100,位列“API、库和框架”分类第6位,被认为是该领域的佼佼者。

2.3访问数据库实现方法

(1)首先介绍一下web数据库搜索网络上的基本步骤:

第一步:检查消费者的数据,

第二步:你必须建立与数据库的连接;

第三步:搜索数据库;

第四步:数据的结构;

第五步:该商品的结果被示出。

(2)系统,直到我MYSQL5.0 PHP集成开发环境,如使用WAMP服务器处于开机状态,并且更容易访问数据库的报告开发环境:

一个连接到MySQL数据库服务器Mysql_connect-;

语法:资源的mysql_connect(主机,商品名,密码);

请选择数据库:mysql_select_db(数据库链接标识的名称);

关闭数据库:则mysql_close();

2.4系统对MySQL数据库的两种连接方式

活动的MySQL/ MySQL库,或使用ODBC接口,MySQL数据库是一个双向链接。永久及非永久连接。

(1)永久连接:一个更永久的连接请求的最大优点是可以非常有效的客户站在密切的联系,当连接到MySQL服务器,就更好了。在起草该页面每一个孩子在这个过程中,而不是仅仅在任何时候,只有在到MySQL服务器请求连接的生命周期,一旦连接。此子过程是建立到服务器的单独连接可以是永久性的。

(2)非永久连接:他是短路。提交顺路到Web服务器,服务器处理请求并请求的页面,你要发送的浏览器客户端,然后连接断开。对于大多数网站,它经常通过有效高效率有关,但在大多数情况下,所使用的连接,但它是一个完整的时间,以避免出现任何问题,并可以增加的容量服务器承载。

2.5 MySql数据库

Mysql的语言是非结构化的,商品可以在数据上进行工作。因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,其速度、可靠性和适应性而备受关注并得到了普遍的应用。Mysql数据库在编程过程中的作用是很广泛的,为商品进行数据查询带来了方便。Mysql数据库的应用特点:灵活性强,功能强大,语言相对要简洁很多。 

数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据库管理主要是数据存储、修改和增加以及数据表的建立。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。

3 需求分析

3.1 系统设计

所谓系统分析就是,需求人员通过与用户的沟通,所获取的信息,然后把这些信息通过需求说明书的方式展示给用户和开发人员。在软件功能发展的历史长河中,很长时间,特别是最开始的时候,需求分析的重要性并不被人们所认同,例如当时美国IBM公司为英国电信公司开发一套信息管理系统,在需求不明确的情况下开始开发,最初的工期为一年,由于需求获取不清晰导致工期推迟了半年多,造成巨大损失。我们很多软件公司也存在这种情况,边需求,边开发,甚至与用户没有沟通清楚的情况下,直接照搬同类型的项目进行更改,导致到系统验收的时候,重新更改,造成了人力、物力的极大浪费。而导致这一切后果的原因就是需求获取不及时、不清楚、不全面。

3.2需求分析概述

在线音乐网站主要是为了提高用户的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对在线音乐网站的各个模块是通过许多今天的发达在线音乐网站做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。

在线音乐网站所要实现的功能分析,对于现在网络方便,在线音乐网站要实现管理员、用户可以直接在平台上进行查看自己所需数据信息,这样既能节省管理的时间,不用再像传统的方式,如果用户想要进行交流信息,必须双方见面进行沟通交流所需的信息,由于很多用户时间的原因,没有办法进行见面沟通交流,真的很难满足用户的各种需求,所以在线音乐网站的开发不仅仅是能满足用户的需求,还能提高用户的使用率。因此在线音乐网站必须要更快捷、有效、长期地为用户或潜在用户传递信息,建立一个在线音乐网站更好的交流平台,提高系统对用户交流后的信息服务的效率。此系统可以满足大多数用户所提出的问题,用户可以根据自身的需求获取相应的服务,为音乐网站提供了快捷的途径。

在线音乐网站在系统的手机上可以运行,主要实现了管理员后端:个人资料(个人信息)、公共管理(轮播图、网站公告)、用户管理(管理员、注册用户)、信息管理、音乐分类、歌手介绍、音乐库等主要功能模块的操作和管理。用户;Home、音乐交流(发布内容)、网站公告、音乐资讯、个人账户(资料管理、密码管理)、个人收藏、歌手介绍、音乐库等主要功能模块的操作和管理。

总体分布如图3.1所示:

3.1  总体功能需求图

系统实现给用户展示的界面与该对象是面对面的,包括是否允许用户简单,方便使用,该请求的响应时间,对整体质量的主图像,整体的布局的质量。

3.3 系统可行性分析 

技术可行性:

(1)硬件可行性分析

系统的硬件要求方面不存在特殊的要求,只需要在普通的硬件配置就能够轻松的实现,只是需要确保系统的正常工作即可,以及拥有较高的效率。如果有特别低的硬件,它可以导致系统的低性能以及效率低,从而导致整个网站的运行不顺畅。以目前普遍的个人计算机的配置而言,这是十分容易实现的 。因此,本系统的开发在硬件方面是可行的。

提供完整的技术支持和保护,确保网站的稳定,安全运行,提供24×7和24小时技术支持项目完成提供主要的服务器系统安全及时的通知和更新服务。

(2)软件可行性分析

提供一个共同的机制类似的借口动态模型,设计更集中。此外,代码复用,也可以很好的体现。因此,考虑到系统的实际情况,选择小程序作为本系统开发技术。通过上述分析,该系统的设计实现在软件方面是可行的。

因此,我们进行了两个方面的可行性研究,可以看出,该系统的开发是没有问题的。

3.4经济可行性

系统是基python语言开发的软件,所以系统在开发人力、财力要求不高,具有经济可行性。

3.5操作可行性: 

本在线音乐网站采用python语言Django框架,利用网络就能够进行访问和操作,且界面简单易操作,用户只要平时有在用智能手机并连接到网络,都能进行访问和操作。

本在线音乐网站具有易操作、易管理、交互性好的特点,在操作上是非常简单的。因此本系统可以进行开发。

3.6系统流程和逻辑

系统业务流程图如图所示:

图3-1登录流程图

图3-2添加信息流程图

图3-3注册信息流程图

4系统概要设计

4.1 概述

本系统基于Web服务模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:

图4-1  系统工作原理图

4.2 系统结构

本系统架构网站,本系统的具体功能如下:

图4-2系统功能结构图

系统结构图,如图4-3所示:

图4-3:系统结构图

4.3 数据库设计

4.3.1 数据库实体

管理员信息属性图如图4-4所示。

 图4-4 管理员信息实体属性图

用户信息实体属性图如图4-5所示。

图4-5用户信息实体属性图

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:

表introduction_of_singer (歌手介绍)

编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 introduction_of_singer_id int 10 0 N Y 歌手介绍ID 2 artist_photos varchar 255 0 Y N 歌手照片 3 birthday date 10 0 Y N 生日 4 artist_name varchar 64 0 Y N 歌手姓名 5 native_place varchar 64 0 Y N 籍贯 6 represent_music varchar 64 0 Y N 代表音乐 7 awards text 65535 0 Y N 所获奖项 8 introduction_of_singer 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 更新时间

表music_classification (音乐分类)

编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 music_classification_id int 10 0 N Y 音乐分类ID 2 music_category varchar 64 0 Y N 音乐类别 3 recommend int 10 0 N N 0 智能推荐 4 create_time datetime 19 0 N N CURRENT_TIMESTAMP 创建时间 5 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间

表music_library (音乐库)

编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 music_library_id int 10 0 N Y 音乐库ID 2 song_name varchar 64 0 Y N 歌曲名称 3 music_category varchar 64 0 Y N 音乐类别 4 singer varchar 64 0 Y N 歌手 5 issue_date date 10 0 Y N 发行日期 6 audio_frequency varchar 255 0 Y N 音频 7 cover varchar 255 0 Y N 封面 8 video varchar 255 0 Y N 视频 9 lyric text 65535 0 Y N 歌词 10 details longtext 2147483647 0 Y N 详情 11 hits int 10 0 N N 0 点击数 12 praise_len int 10 0 N N 0 点赞数 13 recommend int 10 0 N N 0 智能推荐 14 create_time datetime 19 0 N N CURRENT_TIMESTAMP 创建时间 15 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已取消

表registered_users (注册用户)

编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 registered_users_id int 10 0 N Y 注册用户ID 2 gender varchar 64 0 Y N 性别 3 age varchar 64 0 Y N 年龄 4 examine_state varchar 16 0 N N 已通过 审核状态 5 recommend int 10 0 N N 0 智能推荐 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 更新时间

表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 更新时间:

表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 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间:

表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系统详细设计

本系统使用了python和mysql结合的结构开发了在线音乐网站,系统中所有和数据库有关系的操作都通过一个通用类来实现,大大提高了代码的耦合性,当数据库类型等信息变化后直接修改类文件就可以了,不再需要每个页面都修改。另外本系统解决了中文的问题,也是在配置文件中添加了编码方式的形式解决的,本系统另外一个大的特点是系统对数据库的操作都单独的写在了一个类里,这样对系统的所有数据库操作都只访问这个类就可以了,不要每个页面都去写数据库的操作,提高了系统的集成性。

5.1管理员功能模块

管理员登录,在登录页面填写账号、密码以及验证移动滑块进行登录,如图5-1所示。

图5-1管理员登录界面图

管理员登录到在线音乐网站可以查看个人资料(个人信息)、公共管理(轮播图、网站公告)、用户管理、信息管理、音乐分类、歌手介绍、音乐库、退出等内容,如图5-2所示。

图5-2管理员功能界面图

公共管理,在公共管理页面可以对轮播图、网站公告进行增删改查等操作,如图5-3所示。

图5-3公共管理界面图

用户管理,在用户管理页面可以查看用户名、、姓名、性别、邮箱、手机、身份证、是否审核等信息,并可根据需要对管理员、注册用户进行查询、重置、删除、新增等操作,如图5-4所示。

图5-4用户管理界面图

信息管理,可在信息管理页面查询对已有的音乐交流、交流分类、音乐资讯、资讯分类进行查询、重置、删除、新增等操作,如图5-5所示:

   

图5-5信息管理界面图

音乐分类,在音乐分类查询页面可以查看音乐类别等内容,并可对音乐类别查询、编辑、删除、详细等操作,如图5-6所示:

                                 图5-6音乐分类界面图

歌手介绍,在歌手介绍查询页面可以看歌手照片、生日、歌手姓名、代表音乐等内容,并可在该页面进行查询、编辑、删除、详细等操作,如图5-7所示:

图5-7歌手介绍界面图

音乐库,在音乐库查询页面可以查看歌曲名称、音乐类别等内容,并可在该页面进行查询、编辑、删除、详细等操作,如图5-8所示:

图5-8音乐库界面图

5.2系统前台前端功能模块

系统前台功能,用户登录页面可游览系统主页信息Home、音乐交流、网站公告、音乐资讯、个人账户、个人收藏、歌手介绍、音乐库,如图5-9所示:

图5-9前台首页界面图

5.3用户功能模块

在系统首页注册,用户在前台页面注册信息:输入账号、密码、昵称、邮箱、手机号、身份、性别、年龄等内容,如图5-10所示:

图5-10用户注册界面图

用户登录页面,在用户登录页面输入:用户名、密码、权限验证码等内容进行登,如图5-11所示:

图5-11用户登录界面图

音乐库,在音乐库页面可以查看歌曲名称、音乐类别、歌手等信息进行,并可根据关键词搜索歌曲,如图5-12所示。

图5-12音乐库界面图

   

  6 系统测试

6.1 测试理论

软件系统测试的目的是通过测试找出在程序中的存在的错误信息和阻碍程序正常运转的安全隐患。这同时也是每一个系统软件测试的主要的规定,软件系统的应用过程中,发现一个重要的错误也是极具有很大的影响力的,一个好的测试的方案就为发展程序中存在的重大问题的;同样,一个成功的测试方案也就发现了迄今为止尚未发现的一个重要错误的测试。

软件测试的主要的好处就是为了让软件的运行情况更好,让用户的使用的过程中更加的满意。在软件工程中,软件测试是一个十分重要环节,在交付用户使用最终的软件之前,软件测试就是一个检验的过程,主要针对的是软件的软件设计开发、需求分析、系统编码各阶段结果的一个检验过程。

软件测试应遵循的原则如下:

(1) 软件测试要尽快的进行并且整个测试部分要是在整个软件开发的各个过程和细节。在发现了错误的情况下,立刻处理,这样会大大的减少软件的开发成,提高软件的质量。

(2) 在关于软件的各种测试中,例如测试的过程中使用的计划、报告等等要做到妥善的处理和保管,主要目的就是为了方便将来的对系统的维护。

(3) 群集现象是应该得到高度重视的,在软件的整个测试的过程中。就是在整个测试的过程中发现了错误的主要地方很有可能是就很多的错误的聚集的地方,所以要对这样的部分给予特殊的照顾。

(4) 对于软件的测试要尽量不要软件的设计开发人员或是机构,而是要另一方来进行测试程序,这样也是为了保证软件的测试结果的客观性以及公平公正性。

(5) 对于整个测试计划要严格的按照一定的规则来进行软件测试。

(6) 关于软件测试的过程中的用例应该是预期结果以及之前输入的数据信息构成,输入条件中的要考虑的有合理和不合理的因素都要考虑到,这样也是为了更好的帮助开发的人员更多的发现软件中存在的错误。

(7) 对于整个的测试结果进行全面的检查,尽量避免出现重复的错误。

6.2 测试方法及用例

1、功能测试

从用户的角度来看,测试时不了解新开发软件的内部结构,因此可以将系统与黑匣子进行比较,盲目输入后可以查看系统给出的反馈。这种测试属于黑盒测试,在测试中如果输入错误信息系统会报错。

2、性能测试

测试软件程序的整体状态(称为性能测试)通常使用自动化测试工具来检测系统的整体功能,在负载和压力测试之间进行划分,在某些情况下,将两者结合起来。虽然压力测试可以检测到系统可以提供的最高级别的服务,但是负载测试可以测试系统如何响应增加的负载。

在对系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个系统开发所牵扯的该问题都必须一一解决,提高系统的安全性、稳定性。

白盒测试与黑盒测试是测试中比较常用的两种方法。

①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽了解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。

②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。

测试用例:

表6.1 用户注册测试用例

用例编号 UC-TEST-001 测试名称 用户注册 前提条件 用户注册 步骤 操作描述 数据 期望结果 1 点击用户注册查看详情按钮 无 跳转到用户注册详情 2 点击添加按钮 无 跳转到添加页面 3 选中添加后按钮 无 跳转到用户注册页面 测试说明 用户未登录时到步骤3跳转到登录页面 测试结果 成功 测试人

表6.2 登录测试用例

情况 用户名输入 密码输入 期望结果 (1) 15546219225 1244566 提示“用户名或者密码错误,或账号未经审核” (2) aaaaa 123456 提示“用户名或密码错误,或者账号未经审核” (3) 111 111 登陆成功

6.3测试结果

测试后得到的性能和用例,系统具有足够的正确性、可靠性、稳定性,并且可以对输入数据进行准确的点击操作处理和响应测试用户的体验也得到了很好的反馈和响应时间。合理的范围,可以兼容所有主流浏览器,设计所需的效果。

结论

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

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

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

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

                                                                  致 谢

毕业设计结束的同时也意味着四年的大学生活就要结束了。在线音乐网站的完成以及如何在系统运行过程中实现的更好,这其中付出了很大的努力,这段时光将会终身难忘。

在毕业设计的这一段时间里,离不开导师的细心指导,还有同学们的热情帮助,有时候几个同学在一起讨论系统中的某个功能模块如何实现,如何实现的更好,或是问题没得到有效的解决,就会没有心思做其他的事情,让我们对理想充满了动力。

在毕业设计即将结束之时,首先要感谢我的指导老师,谢谢您在毕业设计和毕业论文中对我的指导。在您的细心指导下我才能快速的掌握系统的相关功能,在您的大力帮助下我才能将课本上的知识与自己的项目结合,真正的做到学以致用。感谢您经常牺牲自己的休息时间,利用其丰富的教学和项目经验对我进行指导。 课堂上,您教会我们如何做人、教会我们新的知识,在课下,您又像朋友一样亲切,教会了我很多道理,让我意识到先做人、后做事。感谢所有教过我的老师,为我倾注了大量的心血,正是你们的谆谆教诲、严谨教学才使我能顺利的完成学业,再此向你们表示深深的感谢。感谢大学里教过我的每一位老师,真心祝福您们。

毕业在即,在今后的工作和生活中,我会铭记师长们的教诲、同学们的帮助,继续不懈努力和追求,来报答所有支持和帮助过我的人!

最后,耽误了老师的休息时间来对本文进行审阅,评议和参与论文答辩的各位老师表示深深的感谢。在此,衷心的谢谢您们!

                                                                参考文献

[1]. Splice and the platformization of hip hop production: Navigating the online music platform for royalty-free samples[J]. Global Hip Hop Studies,2023,2(2).

[2]周春吟.基于Python语言图形用户界面设计的研究[J].科学技术创新,2022(35):81-85.

[3]李焱,王倩.Python语言程序设计课程思政建设的路径探索[J].青海教育,2022(11):55-56.

[4]王强,刘明春.Python与Java在面向对象机制方面的比较[J].电脑编程技巧与维护,2022(11):7-9.DOI:10.16184/j.cnki.comprg.2022.11.043.

[5]陈文冬,袁鑫,任梦,丘锦晴.在线音乐平台用户体验对重复购买行为的影响——在线评论的调节效应[J].北方经贸,2022(11):57-60.

[6]Yan Qilin. Real-Time Analysis of Youth Emotion Based on Python Language and Smart Sensor Network[J]. Mobile Information Systems,2022,2022.

[7]邱红丽,张舒雅.基于Django框架的web项目开发研究[J].科学技术创新,2021(27):97-98.

[8]吴丹.在线音乐平台的短视频功能探索[J].电影评介,2021(13):18-21.DOI:10.16583/j.cnki.52-1014/j.2021.13.021.

[9]马子辰. 基于Django框架的社交电商系统的开发与实现[D].首都经济贸易大学,2021.DOI:10.27338/d.cnki.gsjmu.2021.000666.

[10]安文潞. 基于Django框架的考古书店官方网站的设计与实现[D].首都经济贸易大学,2021.DOI:10.27338/d.cnki.gsjmu.2021.000601.

[11]任晓洁. 基于Django框架的音乐推荐系统的设计与实现[D].首都经济贸易大学,2021.DOI:10.27338/d.cnki.gsjmu.2021.000049.

[12]邓皓月. 在线音乐平台独家授权的反垄断规制[D].华南理工大学,2021.DOI:10.27151/d.cnki.ghnlu.2021.000629.

[13]吕奎. 基于Django框架的发酵技术云服务器开发[D].江南大学,2021.DOI:10.27169/d.cnki.gwqgu.2021.001707.

[14]李延婷. 大学生在线音乐付费意愿影响因素研究[D].武汉大学,2021.DOI:10.27379/d.cnki.gwhdu.2021.000215.

[15]张璇炜. 在线音乐平台互动对用户满意度影响的实证研究[D].湖南大学,2021.DOI:10.27135/d.cnki.ghudu.2021.002066.

[16]江姗姗.在线音乐平台,以“音乐+”触发化学反应[J].国际品牌观察,2021(07):57-59.

[17]李子豪. 流媒体时代在线音乐平台的音乐人IP开发设计研究[D].华东理工大学,2020.DOI:10.27148/d.cnki.ghagu.2020.000542.

[18]单梦宇. 头部在线音乐平台企业独家交易与竞争政策[D].东北财经大学,2020.DOI:10.27006/d.cnki.gdbcu.2020.000233.

[19]温静.基于在线音乐平台的陕西民间音乐保护与传承路径研究[J].北方音乐,2020(18):35-36.

[20]Quinn Aisling. Are online music platforms undermining the principles of copyright law?[J]. Journal of Intellectual Property Law & Practice,2018,13(1).

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

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。