django如何从互联网上下载文件

时间:2016-07-21 23:26:06

标签: python django

我希望用户输入文件URL,然后让我的django应用程序从互联网上下载文件。

我的第一直觉是在我的django应用程序中调用wget,但后来我认为可能有另一种方法来完成这项工作。我搜索时找不到任何东西。还有更多的django方法吗?

2 个答案:

答案 0 :(得分:4)

你并没有真正依赖Django。 我碰巧喜欢使用requests库。
这是一个例子:

    import requests

    def download(url, path, chunk=2048):
        req = requests.get(url, stream=True)
        if req.status_code == 200:
            with open(path, 'wb') as f:
                for chunk in req.iter_content(chunk):
                    f.write(chunk)
                f.close()
            return path
        raise Exception('Given url is return status code:{}'.format(req.status_code))

放置此文件并在需要时将其导入模块。
当然这是非常小的,但这会让你开始。

答案 1 :(得分:1)

您可以在urllib2中使用urlopen,如下例所示:

import urllib2
pdf_file = urllib2.urlopen("http://www.example.com/files/some_file.pdf")
with open('test.pdf','wb') as output:
    output.write(pdf_file.read())

有关详情,请参阅urllib2 docs