Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django下载文件_Django_Django Views - Fatal编程技术网

Django下载文件

Django下载文件,django,django-views,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

我正在训练用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

它下载了一个空文件,我怎么填呢??坦克

我个人会将此文件放入媒体目录,让您的服务器进行文件流传输,而不是django,除非您确实需要它

在django中提供静态文件的效率非常低,因此您最好通过专门为提供数据而优化的web服务器来实现这一点

来自django文档

提供文件

除了这些配置步骤之外,您还需要 提供静态文件

在开发过程中,如果您使用 runserver和DEBUG设置为True(请参阅 django.contrib.staticfiles.views.service())

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


有关在生产环境中为静态文件提供服务的正确策略,请参阅部署静态文件。

是否启用了
modxsendfile
?当您将文件传递给
HttpResponse
方法时会发生什么<代码>包装器=文件包装器(打开(路径,“r”);response=HttpResponse(wrapper,content\u type=content\u type)现在我正在开发中,我尝试了views.service(请求,路径到文件),但它可以找到文件:“/var/www/totrack/media/zones/temp/marc.osm”找不到