【问题标题】:django , requests download filedjango,请求下载文件
【发布时间】:2016-04-20 15:56:14
【问题描述】:

我正在尝试从另一台服务器下载文件,我想将它保存在本地服务器中并创建一个下载链接,以便用户能够从我们的网站下载它。

我可以通过请求下载它,它工作正常,但我不知道如何将文件保存在静态文件目录中并为其创建一个 url。请指导我

import requests
def download_file(url):
   local_filename = url.split('/')[-1]
   r = requests.get(url, stream=True)
   with open(local_filename, 'wb') as f:
    for chunk in r.iter_content(chunk_size=1024):
        if chunk: # filter out keep-alive new chunks
            f.write(chunk)
return local_filename

【问题讨论】:

    标签: python django web-applications python-requests


    【解决方案1】:

    您应该将生成的和用户上传的文件保存到MEDIA_ROOT 文件夹而不是STATIC_ROOT。它们将使用默认设置在localhost:8000/media/test.txt 提供服务。 所以你应该在你的函数中做类似return redirect(settings.MEDIA_URL + '/' + local_filename)的事情。

    查看this博客文章了解更多信息。

    【讨论】:

      【解决方案2】:

      我猜你可能会使用FileField。您可以为这种文件创建一个模型,其外键为User。该字段将文件保存到您的Storage 并通过调用url() 方法生成一个url。 https://docs.djangoproject.com/en/1.9/ref/models/fields/#filefield

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-18
        • 2014-11-11
        • 1970-01-01
        • 2021-08-06
        • 2014-01-16
        • 2013-06-23
        相关资源
        最近更新 更多