我正在训练在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
它下载一个空文件,我怎么能填写它?坦克!!
答案 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())。
这种方法效率极低,可能不安全,因此不适合生产。
请参阅部署静态文件以获取在生产环境中提供静态文件的正确策略。