如何通过django提供生成的文件

时间:2010-07-05 08:12:37

标签: django django-views

我使用Django生成tar.gz文件并将其保存到/home/foo/foo.tar.gz之类的地方,但我不知道在django视图下提供这些生成文件的好方法是什么。

我正在使用return HttpResponseRedirect("/home/foo/foo.tar.gz")但它实际上不是一个提供tar.gz文件的好方法,因为生成的tar.gz文件路径从我的linux服务器的/(根目录)开始相对路径。

感谢。

3 个答案:

答案 0 :(得分:4)

只需发送in the response

答案 1 :(得分:0)

如果你不想通过Django进行身份验证保护,你可以使用你的http服务器(nginx,lighttpd,apache等)来提供服务 - 这可以减少服务器的影响。

答案 2 :(得分:0)

您可以定义相对于MEDIA_ROOT的重定向路径或settings中的其他设置 - 正如James所说,如果您还没有,请务必考虑配置您的http服务器来处理这些文件。 / p>

# settings.py
TARBALL_ROOT = '/home/foo/tarballs/'

# views.py
import os
from django.conf import settings

def your_view(request):
    # do some stuff
    filepath = os.path.join(settings.TARBALL_ROOT, 'relative/path/from/media/root'
    return HttpResponseRedirect(filepath)