Django下载文件

时间:2013-07-15 13:09:07

标签: django django-views

我正在训练在Django中下载文件。我找到了很多方法,没有人适合我。有谁能够帮我?这是我在views.py中的实际代码:

if form.is_valid():
        format = form.cleaned_data['format']
        x.saveCalculatedRoute( tempRoute+request.user.username, format )

        path_to_file = '/var/www/tottrack/media/zones/temp/marc.osm'
        response = HttpResponse(mimetype='application/force-download')
        response['Content-Disposition'] = 'attachment; filename=prova.osm' 
        response['X-Sendfile'] = smart_str(path_to_file)

        return response

它下载一个空文件,我怎么能填写它?坦克!!

1 个答案:

答案 0 :(得分:1)

我个人会把这个文件放到媒体目录中,让你的服务器进行文件流而不是django,除非你真的需要它。

在django中提供静态文件效率非常低,所以最好通过专门针对提供数据进行优化的Web服务器来做这件事。

来自django docs https://docs.djangoproject.com/en/1.5/howto/static-files/#configuring-static-files

  

提供文件

     

除了这些配置步骤,您还需要实际   提供静态文件。

     

在开发过程中,如果您使用,将自动完成   runserver和DEBUG设置为True(请参阅   django.contrib.staticfiles.views.serve())。

这种方法效率极低,可能不安全,因此不适合生产。

请参阅部署静态文件以获取在生产环境中提供静态文件的正确策略。