Categories
Python Answers

How to make Python Django serve downloadable files?

Spread the love

To make Python Django serve downloadable files, we can return a response with some special values.

For instance, we write

from django.utils.encoding import smart_str

response = HttpResponse(content_type='application/force-download')
response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(file_name)
response['X-Sendfile'] = smart_str(path_to_file)
return response

to create a HttpResponse instance and assign it to response.

Then we set the Content-Disposition response header with

response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(file_name)

And then we set the X-Sendfile header to the path of the file with

response['X-Sendfile'] = smart_str(path_to_file)

And then we return the response in our view.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *