Мне нужно запустить фоновый запрос в приложении 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.
Он позволяет запускать задания, выполняемые в фоновом режиме. Надеюсь, это поможет вам.

Вернуться на верх