企业网站用vps还是虚拟主机怎么创建网站赚钱
博主介绍:✌全网粉丝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,%s'''limit = 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 music'''rs, 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.`name`FROMmusic WHEREmusic.`id` = %s'''vals = (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` = '%s'WHERE`id` = %s'''status = ','.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` WHERE`id` = %s'''vals = (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 = '''SELECT`user`.id FROM`user` WHERE`user`.token='%s''''vals = (token)rs,uid = sqls.setSqlDoing(sql%(vals))if rs != False and len(uid) != 0:sql = '''SELECTcollection.id FROMcollection WHEREcollection.mid=%sAND collection.uid=%s'''vals = (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 = '''SELECT`user`.id FROM`user` WHERE`user`.token='%s''''vals = (token)rs,uid = sqls.setSqlDoing(sql%(vals))if rs != False and len(uid) != 0:sql = '''SELECTcollection.mid FROMcollection WHEREcollection.uid=%s'''vals = (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 = '''SELECT`user`.id FROM`user` WHERE`user`.token='%s''''vals = (token)rs,uid = sqls.setSqlDoing(sql%(vals))if rs != False and len(uid) != 0:sql = '''SELECTcollection.mid,collection.uidFROMcollection'''rs,col = sqls.setSqlDoing(sql)sql = '''SELECTcollection.midFROMcollectionWHEREcollection.uid=%s'''rs,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])+'_u'mus = 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 = '''SELECT`user`.id FROM`user` WHERE`user`.token='%s''''vals = (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 = '''SELECT`user`.`name`,`comment`.`content`FROM`user`,`comment`WHERE`comment`.`uid`=`user`.idAND`comment`.`mid`='%s'ORDER BY`comment`.id DESC'''vals = (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,[]
🍅✌感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目代码以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业!🍅✌
源码获取:
🍅由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。🍅
点赞、收藏、关注,不迷路,下方查看👇🏻获取联系方式👇🏻