Мне нужно запустить фоновый запрос в приложении django, какой лучший способ сделать это?
В index.html
у меня есть форма, которая принимает файлы
<form method="post" enctype="multipart/form-data" action="">
{% csrf_token %}
{{ form }}
<button type="submit" class="btn btn-primary dropdown-toggle">Start Validation</button>
</form>
Затем мое приложение запускает некоторые функции для обработки этих файлов. Проблема в том, что страница продолжает загружаться и ожидает обратного ответа
мой views.py
class MainView(View):
def get(self, request):
form = UploadFileForm()
return render(request, 'myapp/index.html', {'form':form})
def post(self, request):
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
uploadedFile = request.FILES['file']
function_to_processes_the_file(fil=request.FILES['file']) # Takes some time
return redirect('/')
Итак, мой вопрос в том, как я могу заставить его обрабатывать файл в фоновом режиме без необходимости ждать ответа, нужен ли для этого javascript?
Ознакомьтесь с Celery и Using Celery With Django for Background Task Processing.
Он позволяет запускать задания, выполняемые в фоновом режиме. Надеюсь, это поможет вам.