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