如何在Django视图中返回mp3文件

时间:2019-03-16 17:42:09

标签: python django sqlite

我正在使用Django和创建音频上传/下载应用 我想返回在视图中保存在templates/中的.mp3文件。 请帮我。 谢谢。

2 个答案:

答案 0 :(得分:0)

def get_music_view(request):
    from django.templatetags.static import static
    music = static('music/Billie Eilish - when the party\'s over (Viga Remix).mp3')
    # static/music/Billie Eilish - when the party\'s over (Viga Remix).mp3
    return redirect(music)

为我工作,并且不会导致ConnectionResetError

答案 1 :(得分:-1)

将您的mp3文件保存在template文件夹所在的位置。将用户上传的内容保存到MEDIA_ROOT,并在STATIC_ROOT中保存静态内容(如CSS,js,而不是用户内容图像)。

不提供带有Django代码的静态文件和媒体文件。用django服务器静态内容是一种不好的做法(例如,必须使用Nginx之类的东西来处理静态文件=>参见thisthis)。

如果您坚持使用django提供静态文件,请在views.py相关函数的末尾添加以下代码并返回mp3文件,如下所示:

def your_view_function(request):
    # your other codes ...
    file = open("/path/to/your/song.mp3", "rb").read() 
    response['Content-Disposition'] = 'attachment; filename=filename.mp3' 
    return HttpResponse(file, mimetype="audio/mpeg")