Djangoでファイルをダウンロードさせる方法

Webアプリケーションにとって、ファイルのダウンロードはたいていのケースで要求される機能ではないでしょうか。ハセテツもいろいろなプロジェクト、言語をこなしてきましたが、すべての状況で要求されてきたと思います。

で、Python/Djangoの例です。

def download_file(request):
    from django.http import *
    response = HttpResponse(open(‘/path/to/downloadfile’,’rb’).read(), mimetype=’ダウンロードさせるファイルのMIME type’)
    response[‘Content-Disposition’] = ‘filename=クライアントに表示させるファイル名’
    return response

これだけです。

まぁファイルサイズを追記すべきというのは至極ごもっともで、必要に応じて「Content-length」や「Content-type」を追加していただければと思います。