自動化無しに生活無し

WEBとかAIとかLinux関係をひたすら書く備忘録系ブログ

【Django】2次元配列をCSVファイルとしてダウロードできるようにする【HttpResponse】

  • 作成日時:
  • 最終更新日時:
  • Categories: サーバーサイド
  • Tags: django
thumbnail
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できるようになる。

スポンサーリンク

シェアボタン

Twitter LINEで送る Facebook はてなブログ