python项目分享 - 基于Django的音乐网站系统

0 前言

Hi,大家好,今天给大家介绍一个python管理系统,大家可以用于自己的课设或毕设!

今天要分享的是:毕业设计 基于Django的音乐网站系统

项目分享:

https://gitee.com/sinonfin/system-sharing

1 设计说明

在虚拟环境下输入命令“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所示。

在这里插入图片描述

部分相关源码

# _*_ coding: utf-8 _*_
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, FileField, TextAreaField
from wtforms.validators import DataRequired, Email, Regexp, EqualTo, ValidationError
from app.models import User

class RegisterForm(FlaskForm):
    """
    用户注册表单
    """
    username = StringField(
        validators=[
            DataRequired("用户名不能为空!"),
        ],
        description="用户名",
        render_kw={
    
    
            "placeholder": "请输入用户名!",
        }
    )
    email = StringField(
        validators=[
            DataRequired("邮箱不能为空!"),
            Email("邮箱格式不正确!")
        ],
        description="邮箱",
        render_kw={
    
    
            "type": "email",
            "placeholder": "请输入邮箱!",
        }
    )
    pwd = PasswordField(
        validators=[
            DataRequired("密码不能为空!")
        ],
        description="密码",
        render_kw={
    
    
            "placeholder": "请输入密码!",
        }
    )
    repwd = PasswordField(
        validators=[
            DataRequired("请输入确认密码!"),
            EqualTo('pwd', message="两次密码不一致!")
        ],
        description="确认密码",
        render_kw={
    
    
            "placeholder": "请输入确认密码!",
        }
    )
    submit = SubmitField(
        '注册',
        render_kw={
    
    
            "class": "btn btn-primary",
        }
    )

    def validate_email(self, field):
        """
        检测注册邮箱是否已经存在
        :param field: 字段名
        """
        email = field.data
        user = User.query.filter_by(email=email).count()
        if user == 1:
            raise ValidationError("邮箱已经存在!")


class LoginForm(FlaskForm):
    """
    登录功能
    """
    email = StringField(
        validators=[
            DataRequired("邮箱不能为空!")
        ],
        description="邮箱",
        render_kw={
    
    
            "type"       : "email",
            "placeholder": "请输入邮箱!",
        }
    )
    pwd = PasswordField(
        validators=[
            DataRequired("密码不能为空!")
        ],
        description="密码",
        render_kw={
    
    
            "type"       : "password",
            "placeholder": "请输入密码!",
        }
    )
    submit = SubmitField(
        '登录',
        render_kw={
    
    
            "class": "btn btn-primary",
        }
    )

class SuggetionForm(FlaskForm):
    """
    意见建议
    """
    name = StringField(
        label="姓名",
        validators=[
            DataRequired("姓名不能为空!")
        ],
        description="姓名",
        render_kw={
    
    
            "placeholder": "请输入姓名!",
            "class" : "form-control"
        }
    )
    email = StringField(
        label="邮箱",
        validators=[
            DataRequired("邮箱不能为空!")
        ],
        description="邮箱",
        render_kw={
    
    
            "type"       : "email",
            "placeholder": "请输入邮箱!",
            "class" : "form-control"
        }
    )
    content = TextAreaField(
        label="意见建议",
        validators=[
            DataRequired("内容不能为空!")
        ],
        description="意见建议",
        render_kw={
    
    
            "class": "form-control",
            "placeholder": "请输入内容!",
            "rows" : 7
        }
    )
    submit = SubmitField(
        '发送消息',
        render_kw={
    
    
            "class": "btn-default btn-cf-submit",
        }
    )





项目分享

项目分享:完整源码 + 环境配置文档 + 设计使用手册

https://gitee.com/sinonfin/system-sharing

猜你喜欢

转载自blog.csdn.net/switch_mooood/article/details/135455014