Django: Загрузка файла как фоновая задача на машине клиента
У меня есть рабочий пример загрузки файла, который работает нормально:
def download_file_view(request):
output = download_file()
response = HttpResponse(output, content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
response['Content-Disposition'] = f'attachment; filename=file.xlsx'
return response
def download_file():
output = io.BytesIO()
workbook = xlsxwriter.Workbook(output)
worksheet = workbook.add_worksheet()
worksheet.write(0, 0, 'something')
workbook.close()
output.seek(0)
return output
Но теперь я хочу, чтобы процесс загрузки продолжался как фоновая задача. Я сделал кое-что с помощью threading.Thread
, но загрузка не происходит:
def download_file_background_view(request):
t = threading.Thread(target=download_file_background)
t.setDaemon(True)
t.start()
return redirect('/')
def download_file_background():
output = io.BytesIO()
workbook = xlsxwriter.Workbook(output)
worksheet = workbook.add_worksheet()
worksheet.write(0, 0, 'something')
workbook.close()
output.seek(0)
response = HttpResponse(output, content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
response['Content-Disposition'] = f'attachment; filename=file.xlsx'
return response
Может ли кто-нибудь помочь мне, как запустить процесс загрузки в фоновом режиме и позволить пользователю заниматься другими делами в интернете?