当前位置:首页 > VUE

Django加Vue实现音乐

2026-01-22 13:15:49VUE

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_ALLOW_ALL_ORIGINS = 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):

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 项目:

npm init vue@latest music_frontend
cd music_frontend
npm install axios vue-router

配置 API 请求(src/services/api.js):

import axios from 'axios'

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

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

创建音乐列表组件(src/components/MusicList.vue):

<template>
    <div>
        <div v-for="music in musics" :key="music.id">
            <h3>{{ music.title }}</h3>
            <p>{{ music.artist }}</p>
            <audio controls :src="music.audio_file"></audio>
        </div>
    </div>
</template>

<script>
import api from '@/services/api'

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

前后端联调

启动 Django 开发服务器:

python manage.py runserver

启动 Vue 开发服务器:

npm run dev

确保 Django 的 MEDIA_URLMEDIA_ROOT 配置正确:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

在 Django 的 urls.py 中添加媒体文件路由:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    ...,
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Django加Vue实现音乐

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

相关文章

vue 实现音乐

vue 实现音乐

Vue 实现音乐播放器 在 Vue 中实现音乐播放器可以通过结合 HTML5 的 <audio> 元素和 Vue 的响应式特性来完成。以下是一个简单的实现方法: 安装依赖(可选) 如果需…

vue实现音乐

vue实现音乐

Vue 实现音乐播放器 在 Vue 中实现音乐播放器可以通过 HTML5 的 <audio> 元素或第三方库如 howler.js 来实现。以下是几种常见的实现方法: 使用 HTML5…

vue实现音乐评论

vue实现音乐评论

Vue 实现音乐评论功能 音乐评论功能通常包括评论列表展示、发表评论、回复评论等模块。以下是基于 Vue 的实现方案。 数据结构设计 评论数据通常采用嵌套结构,包含主评论和子评论(回复): com…

vue实现音乐项目

vue实现音乐项目

Vue实现音乐项目的基本步骤 使用Vue实现音乐项目通常涉及前端界面开发、音频播放控制、API数据交互等核心功能。以下是关键实现方法: 项目初始化与基础配置 创建Vue项目并安装必要依赖: vue…

vue实现音乐跳转

vue实现音乐跳转

使用 Vue 实现音乐跳转功能 在 Vue 中实现音乐跳转功能,通常需要结合 HTML5 的 <audio> 元素和 Vue 的数据绑定及事件处理机制。以下是实现音乐跳转的几种常见方法。…

vue实现音乐上传

vue实现音乐上传

Vue 实现音乐上传功能 音乐上传功能通常涉及前端界面交互、文件选择、上传进度显示以及后端接口对接。以下是基于 Vue 的实现方法: 前端界面设计 使用 Vue 的模板语法创建一个简单的上传界面,…