当前位置:首页 > VUE

Django加Vue实现音乐

2026-02-23 04:15:15VUE

Django 后端搭建

安装 Django 及相关依赖:

pip install django djangorestframework django-cors-headers

创建 Django 项目和应用:

django-admin startproject music_backend
cd music_backend
python manage.py startapp api

配置 settings.py

INSTALLED_APPS = [
    ...
    'rest_framework',
    'corsheaders',
    'api',
]

MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
]

CORS_ORIGIN_ALLOW_ALL = True

创建音乐模型(api/models.py):

from django.db import models

class Music(models.Model):
    title = models.CharField(max_length=200)
    artist = models.CharField(max_length=200)
    audio_file = models.FileField(upload_to='musics/')
    cover_image = models.ImageField(upload_to='covers/')

序列化模型(api/serializers.py):

Django加Vue实现音乐

from rest_framework import serializers
from .models import Music

class MusicSerializer(serializers.ModelSerializer):
    class Meta:
        model = Music
        fields = '__all__'

创建视图(api/views.py):

from rest_framework import viewsets
from .models import Music
from .serializers import MusicSerializer

class MusicViewSet(viewsets.ModelViewSet):
    queryset = Music.objects.all()
    serializer_class = MusicSerializer

配置路由(api/urls.py):

from rest_framework.routers import DefaultRouter
from .views import MusicViewSet

router = DefaultRouter()
router.register(r'musics', MusicViewSet)

Vue 前端搭建

创建 Vue 项目:

Django加Vue实现音乐

vue create music_frontend
cd music_frontend
npm install axios vue-router vuex

配置 API 调用(src/api/index.js):

import axios from 'axios'

const api = axios.create({
    baseURL: 'http://localhost:8000/api/'
})

export default {
    getMusics() {
        return api.get('musics/')
    }
}

创建音乐播放组件(src/components/MusicPlayer.vue):

<template>
    <div>
        <audio controls :src="currentMusic.audio_file"></audio>
        <h3>{{ currentMusic.title }}</h3>
        <p>{{ currentMusic.artist }}</p>
        <img :src="currentMusic.cover_image" alt="Cover">
    </div>
</template>

<script>
export default {
    data() {
        return {
            currentMusic: {}
        }
    },
    async created() {
        const response = await this.$api.getMusics()
        this.currentMusic = response.data[0]
    }
}
</script>

前后端联调

启动 Django 开发服务器:

python manage.py runserver

启动 Vue 开发服务器:

npm run serve

确保 Django 的 CORS_ORIGIN_ALLOW_ALL 设置为 True 以允许跨域请求。通过 Vue 组件调用 Django API 获取音乐数据并播放。

标签: 音乐Django
分享给朋友:

相关文章

react如何播放音乐

react如何播放音乐

使用 HTML5 Audio 元素 在 React 中播放音乐可以通过 HTML5 的 <audio> 元素实现。创建一个状态来控制音频的播放和暂停。 import React,…

css制作音乐

css制作音乐

CSS 制作音乐的基础方法 CSS 本身无法直接生成音频,但可以通过配合 HTML 和 JavaScript 实现音乐播放器界面或音频可视化效果。以下是几种常见实现方式: 音频播放器界面 通过 CS…

js实现音乐播放器

js实现音乐播放器

音乐播放器基础实现 使用HTML5的<audio>元素配合JavaScript实现基础播放功能。以下是一个简单示例: <audio id="player" src="music.m…

用js写实现音乐播放器

用js写实现音乐播放器

基础音乐播放器实现 创建一个简单的HTML结构,包含播放/暂停按钮、进度条和音量控制。 <!DOCTYPE html> <html> <head> <…

uniapp 后台音乐

uniapp 后台音乐

如何在 UniApp 中实现后台音乐播放 配置 manifest.json 文件 在项目的 manifest.json 文件中,确保已启用后台运行权限。找到 app-plus 节点,添加以下配置:…

Vue实现音乐功能

Vue实现音乐功能

Vue 实现音乐功能的基本方法 安装依赖 使用 vue-audio 或 howler.js 等音频库,通过 npm 安装: npm install howler 引入并初始化音频对象 在 Vue…