我希望用户输入文件URL,然后让我的django应用程序从互联网上下载文件。
我的第一直觉是在我的django应用程序中调用wget,但后来我认为可能有另一种方法来完成这项工作。我搜索时找不到任何东西。还有更多的django方法吗?
答案 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。