23

私はFlaskを使用しており、フォアマンを実行しています。私はメモリ内に構築したデータを、ユーザーがこのデータをテキスト ファイルでダウンロードできるようにしたいと考えています。ローカル ディスク上のファイルにデータを書き込んでダウンロードできるようにしたくありません。

私はpythonが初めてです。メモリ内にファイルオブジェクトを作成してから、応答ヘッダーを設定すると思いましたか?

4

1 に答える 1

40

ファイルをディスクに保存せずにクライアントにストリーミングする方法については、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"})
于 2012-08-29T03:27:45.697 に答える