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

个性化音乐推荐系统

python、pycharm、Django、Mysql都已经安装好了!

目录

2025/3/13


2025/3/13

一.打开CMD,安装Mysql驱动

pip install mysqlclient

二.项目初始化:

1.创建Django项目:

django-admin startproject project1
cd project1

2.创建应用:

python manage.py startapp MyApp

3.项目配置(均在settings.py中进行):

(1).添加应用
INSTALLED_APPS = [...'MyApp,
]
(2).配置数据库(MySQL):
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'music_recommendation',    # 数据库名称'USER': 'root','PASSWORD': 'your_password','HOST': 'localhost','PORT': '3306',}
}

2025/3/14

一、数据库设计与迁移

1、定义模型(MyApp/models.py)

from django.db import modelsclass User(models.Model):username = models.CharField(max_length=100, unique=True)password = models.CharField(max_length=100)# 其他用户字段...class Music(models.Model):title = models.CharField(max_length=200)artist = models.CharField(max_length=100)audio_features = models.JSONField()  # 存储MFCC等特征lyrics = models.TextField()# 其他音乐字段...class UserBehavior(models.Model):user = models.ForeignKey(User, on_delete=models.CASCADE)music = models.ForeignKey(Music, on_delete=models.CASCADE)play_count = models.IntegerField(default=0)favorite = models.BooleanField(default=False)timestamp = models.DateTimeField(auto_now_add=True)class SentimentAnalysis(models.Model):user = models.ForeignKey(User, on_delete=models.CASCADE)music = models.ForeignKey(Music, on_delete=models.CASCADE)sentiment = models.CharField(max_length=50)  # 如"happy", "sad"timestamp = models.DateTimeField(auto_now_add=True)

2、生成迁移文件并执行

python manage.py makemigrations
python manage.py migrate

打开CMD,切换到Django项目目录 

二、后端API开发

1.创建序列化器(MyApp/serializers.py) 

from rest_framework import serializers
from .models import User, Music, UserBehavior, SentimentAnalysisclass UserSerializer(serializers.ModelSerializer):class Meta:model = Userfields = '__all__'class MusicSerializer(serializers.ModelSerializer):class Meta:model = Musicfields = '__all__'

2.创建视图(MyApp/views.py)

from rest_framework import serializers
from .models import User, Music, UserBehavior, SentimentAnalysisclass UserSerializer(serializers.ModelSerializer):class Meta:model = Userfields = '__all__'class MusicSerializer(serializers.ModelSerializer):class Meta:model = Musicfields = '__all__'

3.配置URL路由(MyApp/urls.py)

from django.urls import path
from .views import MusicListViewurlpatterns = [path('music/', MusicListView.as_view(), name='music-list'),
]

4.集成推荐算法

在MyApp/Recommendation.py中实现混合推荐算法

from .models import UserBehavior, Musicdef recommend_music(user_id):# 协同过滤 + 内容推荐逻辑# 返回推荐音乐ID列表return [1, 2, 3]  # 示例数据

三、前端开发 

1.创建Vue项目

从CMD窗口切换到要创建项目的目录 

npm install -g @vue/cli
vue create music-recommendation-frontend
cd music-recommendation-frontend

2.安装依赖

npm install axios vue-router

3.创建推荐页面组件src/views/Recommendation.vue

<template><div><h1>个性化推荐</h1><div v-for="music in recommendedMusics" :key="music.id"><h3>{{ music.title }}</h3><p>歌手: {{ music.artist }}</p></div></div>
</template><script>
import axios from 'axios'export default {data() {return {recommendedMusics: []}},mounted() {axios.get('http://localhost:8000/core/music/').then(response => {this.recommendedMusics = response.data})}
}
</script>

四、系统集成和测试

1.启动Django服务

CMD切换到Django项目 

python manage.py runserver

2.启动Vue开发服务器

切换到vue项目对应的目录 

npm run serve


http://www.mrgr.cn/news/94388.html

相关文章:

  • 【菜鸟飞】通过vsCode用python访问公网deepseek-r1等模型(Tocken模式)
  • onnxruntime-gpu与cuda版本对应及是否能调用cuda测试
  • C盘清理技巧分享:释放空间,提升电脑性能
  • 色板在数据可视化中的创新应用
  • vue3 中使用 Recorder 实现录音并上传,并用Go语言调取讯飞识别录音(Go语言)
  • Xxl-Job学习笔记
  • python学习笔记-mysql数据库操作
  • excel中两个表格的合并
  • 网络通信(传输层协议:TCP/IP ,UDP):
  • 【MySQL】基本操作 —— DDL
  • django框架 [面试篇]
  • 基于Redis实现限流
  • Pytorch实现之BCGAN实现双生成器架构的人脸面部生成
  • Interview preparation.md
  • Redis 2025/3/9
  • 整合记录-持续
  • oracle11.2.0.4 RAC 保姆级静默安装(二) DB数据库软件
  • ES 使用geo point 查询离目标地址最近的数据
  • 【lf中的git实战】(我的代码合并到别人那用squash,别人合我这不用!!!)
  • python画图文字显示不全+VScode新建jupyter文件