当前位置: 首页 > news >正文

[免费]基于Python的在线音乐网站系统(后端Django)【论文+源码+SQL脚本】

大家好,我是python222_小锋老师,看到一个不错的基于Python的在线音乐网站系统(后端Django)【论文+源码+SQL脚本】,分享下哈。

项目视频演示

https://www.bilibili.com/video/BV1U2HczxEL1/

项目介绍

本文设计了一种基于Python的音乐播放网站,为人们提供了方便快捷、即用即搜的音乐搜索播放服务,包括音乐新闻、音乐交流、歌曲信息、歌曲排行、歌手排行等功能等,用户不仅能够方便快捷地查看音乐新闻、还能搜索自己喜爱的音乐歌曲进行播放等。音乐播放网站采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采用Python编程语言,MySQL数据库,Ajax异步交互,根据Ajax异步模式等开发工具,完成了系统的主要模块的页面设计和功能实现。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。

系统展示

部分代码

from django.shortcuts import render, redirect
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.db.models import Q
from index.models import Song, Dynamicdef SearchView(request, page):if request.method == 'GET':# 搜索歌曲search_song = Dynamic.objects.select_related('song').order_by('-dynamic_search').all()[:6]# 获取搜索内容,如果kword为空即查询全部歌曲kword = request.session.get('kword', '')if kword:# Q是SQL语句里的or语法song_info = Song.objects.values('song_id', 'song_name', 'song_singer', 'song_time').filter(Q(song_name__icontains=kword) | Q(song_singer=kword)).order_by('-song_release').all()else:song_info = Song.objects.values('song_id', 'song_name', 'song_singer', 'song_time').order_by('-song_release').all()[:50]# 分页功能paginator = Paginator(song_info, 5)try:contacts = paginator.page(page)except PageNotAnInteger:contacts = paginator.page(1)except EmptyPage:contacts = paginator.page(paginator.num_pages)# 添加歌曲搜索次数song_exist = Song.objects.filter(song_name=kword)if song_exist:song_id = song_exist[0].song_iddynamic_info = Dynamic.objects.filter(song_id=int(song_id)).first()# 判断歌曲动态信息是否存在,存在就在原来基础上加1if dynamic_info:dynamic_info.dynamic_search += 1dynamic_info.save()# 动态信息不存在则创建新的动态信息else:dynamic = Dynamic(dynamic_plays=0, dynamic_search=1, dynamic_down=0, song_id=song_id)dynamic.save()return render(request, 'search/search.html', locals())else:# 处理POST请求,并重定向搜索页面。request.session['kword'] = request.POST.get('kword', '')return redirect('/search/1.html')
from django.db import models# 歌曲分类表label
class Label(models.Model):label_id = models.AutoField('序号', primary_key=True)label_name = models.CharField('分类标签', max_length=10)def __str__(self):return self.label_nameclass Meta:# 设置admin界面的显示内容verbose_name = '歌曲分类'verbose_name_plural = '歌曲分类'# 歌曲信息表song
class Song(models.Model):song_id = models.AutoField('序号', primary_key=True)song_name = models.CharField('歌名', max_length=50)song_singer = models.CharField('歌手', max_length=50)song_time = models.CharField('时长', max_length=10)song_album = models.CharField('专辑', max_length=50)song_languages = models.CharField('语种', max_length=20)song_type = models.CharField('类型', max_length=20)song_release = models.CharField('发行时间', max_length=20)song_img = models.CharField('歌曲图片', max_length=20)song_lyrics = models.CharField('歌词', max_length=50, default='暂无歌词')song_file = models.CharField('歌曲文件', max_length=50)label = models.ForeignKey('Label', on_delete=models.CASCADE, verbose_name='歌曲分类')def __str__(self):return self.song_nameclass Meta:# 设置admin界面的显示内容verbose_name = '歌曲信息'verbose_name_plural = '歌曲信息'# 歌曲动态表dynamic
class Dynamic(models.Model):dynamic_id = models.AutoField('序号', primary_key=True)dynamic_plays = models.IntegerField('播放次数')dynamic_search = models.IntegerField('搜索次数')dynamic_down = models.IntegerField('下载次数')song = models.ForeignKey('Song', on_delete=models.CASCADE, verbose_name='歌名')class Meta:verbose_name = '歌曲动态'verbose_name_plural = '歌曲动态'# 歌曲点评论comment
class Comment(models.Model):comment_id = models.AutoField('序号', primary_key=True)comment_text = models.CharField('内容', max_length=500)comment_user = models.CharField('用户', max_length=20)comment_date = models.CharField('日期', max_length=50)song = models.ForeignKey('Song', on_delete=models.CASCADE, verbose_name='歌名')class Meta:verbose_name = '歌曲评论'verbose_name_plural = '歌曲评论'

源码下载

链接:https://pan.baidu.com/s/1zKh80kmyqP5Gl60zdYWkFQ
提取码:1234

http://www.dtcms.com/a/422796.html

相关文章:

  • 网站建设后期出现的问题手机网站开发前台架构
  • 首饰设计网站大全如何选择昆明网站建设
  • MapDistill:通过相机 - 激光雷达融合模型蒸馏提升高效基于相机的高清地图构建性能
  • 安卓开发---在适配器中使用监听器
  • 【COT】PromptCoT 2.0少样本训练 CoT
  • 鸿蒙应用开发和安卓应用开发的区别
  • UNIX下C语言编程与实践12-lint 工具使用指南:C 语言源代码语法与逻辑错误检查实战
  • UNIX下C语言编程与实践5-C 语言编译器 cc(gcc/xlc)核心参数解析:-I、-L、-D 的使用场景与实例
  • 机器视觉的双相机对位模切应用
  • 高档网站设计wordpress好用的商城主题
  • 植物大战僵尸融合版下载安装教程【PC/安卓/iOS 完整攻略 + 常见问题解决】
  • 厦门做网站价格想学网站建设与设计的书籍
  • 【TCSVT→Neurocomputing→ASOC投稿】记一次旷日持久的投稿经历
  • namespace 扩展
  • C语言——深入解析C语言指针:从基础到实践从入门到精通(一)
  • leetcode430:扁平化多级双向链表
  • 网站项目开发收费标准360网站名片怎么做的
  • 分布式秒杀系统设计方案
  • 分布式短链接系统设计方案
  • 分布式光纤声波振动与AI的深度融合:开启智慧感知新时代
  • 电商网站设计论文新网金商网站
  • [pdf、epub]320道《软件方法》强化自测题业务建模需求分析共279页(202509更新)
  • 赎金信--leetcode
  • Harbor磁盘空间清理指南:如何安全清理半年前的镜像
  • 网站开发项目组织架构电商平台怎么找商家
  • 基于Hadoop的肾脏疾病风险分析系统架构设计精髓
  • 如何优雅的布局,height: 100% 的使用和 flex-grow: 1 的 min-height 陷阱
  • Ubuntu20.04使用venv创建虚拟环境并安装ultralytics
  • Docker 镜像知识总结
  • 东莞保安公司2019网站seo