【问题标题】:how to serve generated files via django如何通过 django 提供生成的文件
【发布时间】:2010-07-05 08:12:36
【问题描述】:

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

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

谢谢。

【问题讨论】:

    标签: django django-views


    【解决方案1】:

    只需发送in the response。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        # 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)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-10-20
          • 2011-01-27
          • 2014-08-26
          • 1970-01-01
          • 2020-06-17
          • 1970-01-01
          • 2020-09-26
          相关资源
          最近更新 更多