手机做印章网站,乐清网络平台,搜索引擎调词软件,合肥网站建设企业博主介绍#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久#xff0c;选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来#xff0c;点赞、关注不迷路✌
毕业设计#xff1a;2023-2024年… 博主介绍✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来点赞、关注不迷路✌
毕业设计2023-2024年计算机专业毕业设计选题汇总建议收藏
毕业设计2023-2024年最新最全计算机专业毕设选题推荐汇总
1、项目介绍
技术栈 Python语言、Django框架、Vue框架、MySQL数据库、协同过滤推荐算法、HTML
2、项目界面
1系统首页
2音乐播放页面 3音乐数据管理 4注册登录界面
3、项目说明
Django是一种基于Python的Web开发框架它提供了一种简单且高效的方式来创建和管理网站。协同过滤音乐推荐系统是一种利用用户的历史行为和兴趣来推荐他们可能喜欢的音乐的系统。
在Django中实现协同过滤音乐推荐系统可以分为以下几个步骤 数据收集首先需要收集用户的历史行为数据这包括他们的播放记录、收藏记录、评分等。这些数据可以通过用户提交的表单、API接口或者其他方式来收集。 数据存储收集到的数据需要存储在数据库中Django提供了一个强大的ORM对象关系映射工具可以方便地与数据库交互存储和查询数据。 数据预处理在进行推荐之前需要对数据进行一些预处理操作例如去除重复数据、缺失值处理等。这可以通过Django中的数据处理库来实现。 特征选择根据用户的历史行为数据需要选择一些特征来表示用户的兴趣和喜好。常用的特征包括音乐风格、歌手、专辑等。 相似度计算根据选择的特征可以计算不同用户之间的相似度。常用的相似度计算方法包括余弦相似度、欧氏距离等。 推荐算法基于计算得到的相似度可以使用一些推荐算法来为用户推荐音乐。常用的推荐算法包括基于邻域的协同过滤、基于模型的协同过滤等。 推荐结果展示最后将推荐的结果展示在网页上供用户浏览。Django提供了丰富的模板和视图功能可以方便地将推荐结果展示在网页上。
总之通过结合Django和协同过滤算法可以实现一个高效的音乐推荐系统为用户提供个性化的音乐推荐服务。
4、核心代码
# -*- coding: utf-8 -*-
#encoding:utf-8
import sysimport json,os,time,datetime##################################################sys.path.append(..)
# from config import conf as CONF
from mydb.mq import tomysql
from master import soUTM# 添加歌曲
def add_music(req):sqls tomysql()sql INSERT INTO music ( title, content, name, path, status)VALUES( %s, %s, %s, %s, %s )# 将数组转为串存储status ,.join([str(i) for i in req[status]])vals (req[title],req[content],req[name],req[path],status)rs,rf sqls.setSql(sql%(vals))if rs ! False:return True,u添加成功else:return False,u添加失败# 获取列表
def get_list(req):sqls tomysql()sql SELECTmusic.id,music.title,music.content,music.name,music.path,music.status FROMmusicORDER BYmusic.id DESC LIMIT %s,%slimit int(req[limit]) if limit in req else 20vals ((int(req[page]) - 1) * 20, limit)rs,ws sqls.setSqlDoing(sql%(vals))if rs ! False and len(ws) ! 0:sql SELECT COUNT(music.id) FROM musicrs, page sqls.setSqlDoing(sql)data [{id:i[0],title:i[1],content:i[2],name:i[3],path:i[4],status:i[5],} for i in ws]sqls.close()return True, {list: data,page: page[0][0] }else:sqls.close()return True, {list: [],page: 0 }# 修改歌曲
def up_music(req):sqls tomysql()# 先看是否存在sql SELECTmusic.nameFROMmusic WHEREmusic.id %svals (req[id])rs,ws sqls.setSqlDoing(sql%(vals))if rs ! False and len(ws) ! 0:sql UPDATE music SET title %s,content %s,name %s,path %s,status %sWHEREid %sstatus ,.join([str(i) for i in req[status]])vals (req[title],req[content],req[name],req[path],status,req[id])rs,ws sqls.setSqlDoing(sql%(vals))sqls.close()return True, u信息修改完毕else:sqls.close()return False, u信息错误# 删除歌曲
def del_music(req):sqls tomysql()sql DELETE FROM music WHEREid %svals (req[id])rs,ws sqls.setSql(sql%(vals))if rs ! False:return True,u删除成功else:return False,u删除失败def add_music_collection(req,token):sqls tomysql()sql SELECTuser.id FROMuser WHEREuser.token%svals (token)rs,uid sqls.setSqlDoing(sql%(vals))if rs ! False and len(uid) ! 0:sql SELECTcollection.id FROMcollection WHEREcollection.mid%sAND collection.uid%svals (req[mid],uid[0][0])rs,cid sqls.setSqlDoing(sql%(vals))if rs ! False and len(cid) 0:sql INSERT INTO collection ( mid, uid)VALUES( %s, %s )vals (req[mid],uid[0][0])rs,cid sqls.setSqlDoing(sql%(vals))sqls.close()return True,u添加成功else:return True,u歌曲已添加else:return False,uiddef get_music_collection(token):sqls tomysql()sql SELECTuser.id FROMuser WHEREuser.token%svals (token)rs,uid sqls.setSqlDoing(sql%(vals))if rs ! False and len(uid) ! 0:sql SELECTcollection.mid FROMcollection WHEREcollection.uid%svals (uid[0][0])rs,cid sqls.setSqlDoing(sql%(vals))sqls.close()if rs ! False and len(cid) ! 0:return True,[i[0] for i in cid]else:return True,[]else:sqls.close()return True,[]def get_music_recommend(token):sqls tomysql()sql SELECTuser.id FROMuser WHEREuser.token%svals (token)rs,uid sqls.setSqlDoing(sql%(vals))if rs ! False and len(uid) ! 0:sql SELECTcollection.mid,collection.uidFROMcollectionrs,col sqls.setSqlDoing(sql)sql SELECTcollection.midFROMcollectionWHEREcollection.uid%srs,mcl sqls.setSqlDoing(sql%(uid[0][0]))sqls.close()if rs ! False and len(col) ! 0:G {}for k in col:use str(k[1])_umus str(k[0])if use in G:G[use][mus] 1else:G[use] {}if mus in G:G[mus][use] 1else:G[mus] {}new_t soUTM.PersonalRank(G, 0.85,%s_u%uid[0][0], 100)me_re [str(i[0]) for i in mcl]new_r []for i in new_t:if _u not in i and i not in me_re:new_r.append(i)return True,new_r[:10]else:return True,[]else:sqls.close()return True,[]def set_comment(req,token):sqls tomysql()sql SELECTuser.id FROMuser WHEREuser.token%svals (token)rs,uid sqls.setSqlDoing(sql%(vals))if rs ! False and len(uid) ! 0:sql INSERT INTO comment ( mid, uid, content)VALUES( %s, %s, %s )vals (req[id],uid[0][0],req[content])rs,uid sqls.setSqlDoing(sql%(vals))sqls.close()return True,u评论成功else:return False,uiddef get_comment(req):sqls tomysql()sql SELECTuser.name,comment.contentFROMuser,commentWHEREcomment.uiduser.idANDcomment.mid%sORDER BYcomment.id DESCvals (req[id])rs,com sqls.setSql(sql%(vals))if rs ! False and len(com) ! 0:return True,[{name:i[0],content:i[1]} for i in com]else:return True,[]
✌感兴趣的可以先收藏起来点赞关注不迷路想学习更多项目可以查看主页大家在毕设选题项目代码以及论文编写等相关问题都可以给我留言咨询希望可以帮助同学们顺利毕业✌
源码获取 由于篇幅限制获取完整文章或源码、代做项目的拉到文章底部即可看到个人联系方式。 点赞、收藏、关注不迷路下方查看获取联系方式