如何在用户机Django中下载视频



这是我的views.py文件

from django.shortcuts import render,HttpResponse,redirect
import youtube_dl
from django.contrib import messages
from pytube import *
# Create your views here.
def home(request):
return render(request,'home.html')

def download(request):
if request.method == 'POST':
video_url = request.POST.get('url')
if video_url:
ydl_opts = {'outtmp1': 'D:/'}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([video_url])
messages.success(request, 'Video Downloaded.')
return redirect('home')
else:
messages.warning(request, 'Please Enter Video URL')
return redirect('home')
return redirect('home')

如何将视频文件下载到用户的机器上?有人能帮我吗?

从你的程序看来,生成的链接没有被带回到home.html

就像下面的代码

def some_view(request):

context = {}
load_template      = "home.html"
context['segment'] = load_template
context['url'] = {YOUR_URL}
html_template = loader.get_template( load_template )
return HttpResponse(html_template.render(context, request))

此外,您应该首先将生成的文件存储在用户可以访问的空间中,然后将文件的URL返回给用户

from django.http import HttpResponse
from wsgiref.util import FileWrapper
def download_pdf(request):
filename = 'whatever_in_absolute_path__or_not.pdf'
content = FileWrapper(filename)
response = HttpResponse(content, content_type='application/pdf')
response['Content-Length'] = os.path.getsize(filename)
response['Content-Disposition'] = 'attachment; filename=%s' % 'whatever_name_will_appear_in_download.pdf'
return response

可以对任何文件类型使用

最新更新