DJango - Загрузка файлов - читать - обрабатывать и скачивать
нужна ваша помощь!!!
Я пытаюсь создать веб-приложение, в котором пользователь будет загружать pdf файлы > читать файлы > обрабатывать их > записывать в excel > затем автоматически загружать в систему пользователя.
Пожалуйста, помогите с кодом, я использую py3.12 & django5
Заранее спасибо.
Код для вышеупомянутого isseu
В ней слишком много всего, чтобы показать, как все это сделать, но в общих чертах:
Форма с полем для файла будет выглядеть так, как если пользователь выберет файл и загрузит его
обработка form_valid будет считывать и обрабатывать файл в excel
Вы можете отправить вывод excel пользователю следующим образом:
.
response = HttpResponse( content_type='application/excel')
response['Content-Disposition'] = f'attachment; filename={name}.xlsx'
data = self.get_wb_as_xlsx()
response.write(data)
return response
Где данные - это сгенерированный файл xlsx. Я использовал openpyxl для записи рабочей книги self.wb
, а затем, когда она была завершена,
def get_wb_as_xlsx( self):
''' returns text of wb (xlsx file content) '''
f = tempfile.NamedTemporaryFile( suffix='.xlsx')
self.wb.save( f.name)
f.flush()
f.seek(0)
data = f.read()
f.close()
return data
Это предполагает, что обработка не займет слишком много процессорного времени для разумного выполнения в контексте сервера. В противном случае следует сохранить файл, породить отдельный процесс для выполнения преобразования (возможно, написанный как команда managementr, чтобы была доступна вся функциональность Django) и сообщить пользователю, чтобы он получил результаты по ссылке через (оценка времени)
Ссылка на представление, которое проверяет, доступны ли еще результаты, выдает их пользователю, если да, извиняется и дает другую оценку времени и ту же ссылку, если нет.