Bezdepbonusu7Программирование: статьи и ответы

Вопрос

В python с использованием Flask, как я могу записать объект для загрузки?

Автор вопроса: swidnikkОтветов: 1

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

Я новичок в питоне. Я думал, что создам какой-нибудь файловый объект в памяти, а затем установим заголовок ответа, может быть?

pythondownloadfile-ioflask

Ответы

Ответ 1 · рейтинг 39 · Sean Vieira

Потоковая передача файлов клиенту без сохранения их на диск описана в разделе "Шаблоны" документации Flask, в частности, в разделе стриминга. По сути, вы возвращаете полноценный объект Response, обертывающий ваш итератор. :

from flask import Response

# construct your app

@app.route("/get-file")
def get_file():
    results = generate_file_data()
    generator = (cell for row in results
                    for cell in row)

    return Response(generator,
                       mimetype="text/plain",
                       headers={"Content-Disposition":
                                    "attachment;filename=test.txt"})

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы