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

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

时间:2023-03-12 16:33:06浏览次数:66  
标签:paginator 音乐网站 Python request django 源码 模块 import Django

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/
 
注:其他问题请参看视频讲解,都有介绍,一定要认真看完哦!
代码编写、视频录制不易,感谢您的支持,祝您学习愉快!
 

避免走丢,记得关注哦

标签:paginator,音乐网站,Python,request,django,源码,模块,import,Django
From: https://www.cnblogs.com/bhml/p/17208422.html

相关文章

  • 【项目实战】基于Python+Tkinter的GUI信息管理系统(附完整源码)
    1、项目说明基于python+Tkinter的gui信息管理系统项目实战项目需要安装pycharm社区版或专业版都可,以及项目所需的所有模块项目需要安装tkinter以及其他的一些模块安装......
  • 【项目实战】基于Python+Flask+MySQL的在线笔记管理系统
    1、项目说明基于python+Flask+mysql的在线笔记管理系统项目实战项目需要安装pycharm专业版,mysql数据库以及项目所需的所有模块创建数据库名称db_online_notes,然后执行sq......
  • 实验1Python开发环境使用和编程初体验
    实验任务一:task1_1:实验源码:Python3.10.7(tags/v3.10.7:6cc6b13,Sep52022,14:08:36)[MSCv.193364bit(AMD64)]onwin32Type"help","copyright","credi......
  • python批量处理图片设置分辨率
    fromPILimportImageimportos#设置图片路径和分辨率input_path="input_folder"output_path="output_folder"resolution=(1280,720)#循环处理图片for......
  • 基于Python+Tkinter的gui信息管理系统
    基于Python+Tkinter的gui信息管理系统1、项目说明2、项目主要技术python编程技术flask框架技术mysql数据库技术html编程css编程js编程3、项目结构4、项目主要......
  • python批量拼接word文件
    importosfromdocximportDocument#创建新的空文档merged_doc=Document()#循环遍历所有.docx文件并将其合并到新文档中forfilenameinos.listdir('.'):......
  • 利用python写的科学计算器
    以下是一个简单的科学计算器的Python代码示例,它支持基本的算术运算、三角函数、指数和对数运算等:importmathdefcalculator():print("欢迎使用科学计算器!")......
  • Python中 __getattribute__、 __getattr__ 和 __setattr__ 的使用
    1.__getattribute__官方文档说明:__getattribute__魔法方法是属性访问拦截器,就是当实例的属性被访问时,会自动调用类的__getattribute__方法。当实例调用属性时,比如......
  • Python Numpy
    (一)linspace说明:通过定义均匀间隔创建数值序列。原型:numpy.linspace(start,#start参数数值范围的起始点。如果设置为0,则结果的第一个数为0.该参数必须提供。end,#......
  • 用python制作座位表
    学校要求的标准座位表是这样的......