Python Flask: скачать файл, созданный на лету, и распечатать ответ
Я последовал этому уроку для потоковой передачи файла, сгенерированного на лету во Flask. Теперь я хочу отобразить сообщение, используя те же данные, которые использовались для создания файла. Это большой набор данных, и я не могу позволить себе загрузить его как для генерации файла, так и для печати результата на странице.
В отличие от In Flask, как я могу перенаправить на шаблон и показать сообщение после возвращения send_file в виде? Я не хочу перенаправления или обновления. Можно ли отправить файл и ответ HTML в одной загрузке страницы?
Я пытался использовать генератор, но безуспешно.
Я использую Heroku.
1 ответ
Вы пытаетесь вернуть "многочастный HTTP-ответ" с HTML-частью и другой (файловой) частью. После быстрого исследования я не уверен, что такая вещь существует, и если это происходит, как это поддерживается / реализовано в браузерах.
Несколько иным способом было бы ответить "классическим" HTML-ответом, который затем запустил бы второй запрос, например, вызов XHR при загрузке документа, чтобы начать загрузку файла.
На серверной стороне вы должны хранить содержимое файла, я не очень знаком с Heroku, но, думаю, вы могли бы использовать для этого значение ключа, например Redis, или даже выделенный сервис, такой как Amazon S3.