Python Flask: скачать файл, созданный на лету, и распечатать ответ

Я последовал этому уроку для потоковой передачи файла, сгенерированного на лету во Flask. Теперь я хочу отобразить сообщение, используя те же данные, которые использовались для создания файла. Это большой набор данных, и я не могу позволить себе загрузить его как для генерации файла, так и для печати результата на странице.

В отличие от In Flask, как я могу перенаправить на шаблон и показать сообщение после возвращения send_file в виде? Я не хочу перенаправления или обновления. Можно ли отправить файл и ответ HTML в одной загрузке страницы?

Я пытался использовать генератор, но безуспешно.

Я использую Heroku.

1 ответ

Решение

Вы пытаетесь вернуть "многочастный HTTP-ответ" с HTML-частью и другой (файловой) частью. После быстрого исследования я не уверен, что такая вещь существует, и если это происходит, как это поддерживается / реализовано в браузерах.

Несколько иным способом было бы ответить "классическим" HTML-ответом, который затем запустил бы второй запрос, например, вызов XHR при загрузке документа, чтобы начать загрузку файла.

На серверной стороне вы должны хранить содержимое файла, я не очень знаком с Heroku, но, думаю, вы могли бы использовать для этого значение ключа, например Redis, или даже выделенный сервис, такой как Amazon S3.

Другие вопросы по тегам