【项目实战】基于Python+Django+MySQL的音乐网站系统(附完整源码)

1、项目说明

基于python+Django+Mysql的音乐网站系统项目实战

项目需要安装pycharm专业版以及MySQL环境(环境搭建和破解可以看我的B站里《python环境配置》的视频里有讲解)

  • 首先需要创建数据库数据库名字叫做 db_music
  • 运行sql导入数据或者也可以直接用命令生成(视频有讲解)
  • 需要安装一下下面的模块(如果运行提示有模块未安装,安装一下即可,命令同下,改一下模块名即可)

项目需要安装 Django、PyMySQL及其附带的其他一些模块

  • Django==3.2.17
  • PyMySQL==0.9.3

安装命令如下:

 

2、项目主要技术

  • python编程技术

  • Django框架技术

  • Mysql数据库技术

  • html编程

  • css编程

  • js编程

 

3、项目结构

  • comment 歌曲点评模块

  • index 主页模块

  • media 上传的文件存放文件夹

  • musicwebsite 主模块(项目的配置文件、主路由)

  • play 歌曲播放模块

  • ranking 歌曲排行榜模块

  • search 歌曲搜索模块

  • static 静态文件存放文件夹

  • templates 模板文件存放文件夹

  • user 用户模块

  • manage.py 项目入口

 

4、项目主要功能

  • 用户登录注册

  • 音乐展示,排行,推荐,搜索

  • 音乐的播放,同步歌词,歌曲评论

  • 管理员对音乐、用户、评论的管理(添加,删除,修改,查询)

 

5、部分源码

user.views.py

from django.shortcuts import render, redirect
from django.shortcuts import reverse
from index.models import *
from user.models import *
from .form import MyUserCreationForm
from django.db.models import Q
from django.contrib.auth import login, logout
from django.contrib.auth.hashers import check_password
from django.contrib.auth.decorators import login_required
from django.core.paginator import Paginator
from django.core.paginator import EmptyPage
from django.core.paginator import PageNotAnInteger


# 用户登录注册
def loginView(request):
    user = MyUserCreationForm()
    if request.method == 'POST':
        # 登录
        if request.POST.get('loginUser', ''):
            u = request.POST.get('loginUser', '')
            p = request.POST.get('password', '')
            if MyUser.objects.filter(Q(mobile=u) | Q(username=u)):
                u1 = MyUser.objects.filter(Q(mobile=u) | Q(username=u)).first()
                if check_password(p, u1.password):
                    login(request, u1)
                    return redirect(reverse('home', kwargs={'page': 1}))
                else:
                    tips = '密码错误'
            else:
                tips = '用户不存在'
        # 注册
        else:
            u = MyUserCreationForm(request.POST)
            if u.is_valid():
                u.save()
                tips = '注册成功'
            else:
                if u.errors.get('username', ''):
                    tips = u.errors.get('username', '注册失败')
                else:
                    tips = u.errors.get('mobile', '注册失败')
    return render(request, 'user.html', locals())


# 用户中心
# 设置用户登录限制
@login_required(login_url='/user/login.html')
def homeView(request, page):
    # 热搜歌曲
    searchs = Dynamic.objects.select_related('song').order_by('-search').all()[:4]
    # 分页功能
    songs = request.session.get('play_list', [])
    paginator = Paginator(songs, 3)
    try:
        pages = paginator.page(page)
    except PageNotAnInteger:
        pages = paginator.page(1)
    except EmptyPage:
        pages = paginator.page(paginator.num_pages)
    return render(request, 'home.html', locals())


# 退出登录
def logoutView(request):
    logout(request)
    return redirect('/')

 

6、运行截图

 

 

 

 

7、项目总结

本项目是一个非常适合练手或者作为毕业设计的一个项目,对我们的Django开发技术的提升有很大的帮助,推荐大家学习研究这个项目,搞懂其中的原理流程以及知识点非常关键。
 
项目资料截图:

资料获取地址:https://h5.m.taobao.com/awp/core/detail.htm?ft=t&id=706443347568
B站视频讲解地址:https://www.bilibili.com/video/BV1J24y1G7c7/
 
注:其他问题请参看视频讲解,都有介绍,一定要认真看完哦!
代码编写、视频录制不易,感谢您的支持,祝您学习愉快!
 

避免走丢,记得关注哦🌹🌹🌹

posted @ 2023-03-12 16:24  兵慌码乱  阅读(1175)  评论(0编辑  收藏  举报