在虚拟环境下输入命令“python manage.py runserver”启动项目,启动成功后,访问“http://127.0.0.1:5000”进入甜橙音乐网首页,如图1所示。在该页面中用户可以浏览轮播图、热门歌手和热门歌曲。
在导航栏中,单击“排行榜”超链接,将显示歌曲排行榜,如图2所示。单击“曲风”超链接,将显示不同语言的歌曲,如图3所示。单击“歌手”超链接,将显示所有歌手,如图4所示。
在每个页面,单击播放按钮,可以播放音乐,如图5所示。
单击收藏按钮,如果已经登录,则可以收藏该歌曲,如图6所示。如果没有登录,则提示登录。
在甜橙音乐网中,单击顶部的“登录”超链接,将显示登录页面,通过该页面可以实现登录功能,如图7所示;如果还没有注册,则需要先注册成为会员,注册页面如图8所示。
本项目没有后台,但是可以通过管理员账号来管理歌曲和歌手。账号和密码如下:
账号:mr
密码:mrsoft
在甜橙音乐网中,管理员可以通过管理员账号登录网站,然后将鼠标悬浮在用户名上,则显示“后台管理”菜单,如图9所示。
单击“后台管理”超链接,进入歌手管理页面,如图10所示。
在歌手管理页面中,单击“新增歌手”,进入新增歌手页面,如图11所示。在歌手图片栏填写歌手图片路径,如1.jpg。然后将该歌手的图片1.jpg拷贝到“OnlineMusic\app\static\images\artist\”路径下,如图12所示。
单击“后台管理”超链接,进入歌手管理页面,如图13所示。单击“新增歌曲”按钮,在歌曲文件地址栏填写歌曲路径,如53.mp3。然后将该歌手的mp3文件拷贝到“OnlineMusic\app\static\images\song\”路径下,如图14所示。
部分源码如下,其余完整详见下载。
from . import db
# 用户表
class User(db.Model):
__tablename__ = "user"
id = db.Column(db.Integer, primary_key=True) # 编号
username = db.Column(db.String(100)) # 用户名
pwd = db.Column(db.String(100)) # 密码
flag = db.Column(db.Boolean,default=0) # 用户标识,0:普通用户 1:管理员
def __repr__(self):
return '<User %r>' % self.name
def check_pwd(self, pwd):
"""
检测密码是否正确
:param pwd: 密码
:return: 返回布尔值
"""
from werkzeug.security import check_password_hash
return check_password_hash(self.pwd, pwd)
# 歌手表
class Artist(db.Model):
__tablename__ = 'artist'
id = db.Column(db.Integer, primary_key=True) # 编号
artistName = db.Column(db.String(100)) # 歌手名
style = db.Column(db.Integer) # 歌手类型
imgURL = db.Column(db.String(100)) # 头像
isHot = db.Column(db.Boolean,default=0) # 是否热门
# 歌曲表
class Song(db.Model):
__tablename__ = 'song'
id = db.Column(db.Integer, primary_key=True) # 编号
songName = db.Column(db.String(100)) # 歌曲名称
singer = db.Column(db.String(100)) # 歌手名称
fileURL = db.Column(db.String(100)) # 歌曲图片
hits = db.Column(db.Integer,default=0) # 点击量
style = db.Column(db.Integer) # 歌曲类型 0:全部 1:华语 2:欧美 3:日语 4:韩语 5 其他
collect = db.relationship('Collect', backref='song') # 收藏外键关系关联
# 歌曲收藏
class Collect(db.Model):
__tablename__ = "collect"
id = db.Column(db.Integer, primary_key=True) # 编号
song_id = db.Column(db.Integer, db.ForeignKey('song.id')) # 所属歌曲
user_id = db.Column(db.Integer) # 所属用户