私が直面している問題は、WebサーバーのCSVボタンのエクスポートを有効にしようとしていることで、ファイルをローカルに保存することができず、現時点では、実際のデータのレンダリングを心配する前に、基本的なCSVファイルをストリーム配信し、サーバからローカルマシンに保存しようとしています。StreamingHttpResponseを使用した大規模なCSVファイルのダウンロードとダウンロード
私は、ボタンをクリックして私のビューの投稿をクリックしてから、レンダリングして返信したいと思っています。これは$アヤックス関数であったが、私は以来、テスト中にそれを変更していると、このように見えるようにそれが今になります
$("#exportbutton").click(function(e){
$.post("{% url 'doner:download' %}", function(data)
{
console.log(data);
});
})
ビューのコードは(のCTRL + Vであることを起こるそれはこのようになります
SOからの例):だから
def download(request):
def stream():
buffer_ = io.StringIO()
writer = csv.writer(buffer_)
for row in rows:
writer.writerow(row)
buffer_.seek(0)
data = buffer_.read()
buffer_.seek(0)
buffer_.truncate()
yield data
response = StreamingHttpResponse(
stream(), content_type='text/csv'
)
disposition = "attachment; filename=file.csv"
response['Content-Disposition'] = disposition
return response
これをいじっの多くは限り私が持っているようになった後、それはストリーム '()バックHTMLページにデータ意志、意志にconsole.log出力? 'ファイル'データしかし、私はファイルやダウンロードの任意の形式を取得しない、単にデータのコンソールにログインします。
StreamingHttpResponseがどのように機能しているのか、私は誤解しているのか分かりません。ストリームを超えてダウンロードするには何かもっとクライアント側で行うつもりですが、私はドキュメントを読んでいます。明らかです。
私は困っているので、どんな助けがあれば大いに感謝します。