django,请求下载文件

时间:2016-04-20 15:56:15

标签: python django web-applications python-requests

我正在尝试从其他服务器下载文件,我想将其保存在本地服务器中并创建下载链接,以便用户可以从我们的网站下载。

我可以通过请求下载它,它工作正常但我不知道如何将文件保存在静态文件目录中并为其创建 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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您应该将生成的和用户上传的文件保存到free文件夹而不是arr[i]。它们将在arr处以默认设置提供。 所以你应该在你的函数中做MEDIA_ROOT之类的事情。

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