【Django】2次元配列をCSVファイルとしてダウロードできるようにする【HttpResponse】
from django.views import View
from django.http import HttpResponse
import csv
class DownloadView(View):
def get(self, request, *args, **kwargs):
data = [
[ 10,20,30 ],
[ 10,20,30 ],
[ 10,20,30 ],
]
# レスポンスとして返すCSVファイル名
file_name = 'data.csv'
# HttpResponseを使ってCSVのデータを書き込む
response = HttpResponse(content_type='text/csv')
# ファイル名を指定
response['Content-Disposition'] = f"attachment; filename={file_name}"
# HttpResponseにCSVファイルデータを書き込む
writer = csv.writer(response)
writer.writerows(data)
return response
download = DownloadView.as_view()
HttpResponseはこのようにcsv.writer()
の引数に指定することができる。
これにより、配列のデータをそのままCSVファイルとしてDLできるようになる。