2016-07-21 5 views
1

ユーザーにファイルURLを入力させてから、私のdjangoアプリケーションでインターネットからファイルをダウンロードさせたいと思います。djangoインターネットからファイルをダウンロードする方法

私の最初の本能は、私のdjangoアプリの中でwgetを呼び出すことでしたが、その後、これを行う別の方法があると思いました。私は何かを見つけることができませんでした。これを行うにはもっとジャンゴの方法がありますか?

+0

http://stackoverflow.com/questions/38508715/python-download-images-with-alernating-variables/38510385#38510385 – Fhaab

+0

ユーザーが指定したものをダウンロードするには、慎重に行う必要があります。 'REQUESTS'ライブラリはそれを扱うことができます:http://docs.python-requests.org/ja/master/user/quickstart/#raw-response-content – Nicarus

+1

[重複している可能性のある[Pythonを使ってHTTP経由でファイルをダウンロードする方法?](http://stackoverflow.com/questions/22676/how-do-i-download-a-file-over-http-using-python) – rafalmp

答えて

2

これは本当に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)) 

場所:ここ
は一例です。
もちろん、これは非常に最小限ですが、これはあなたを始めます。

+0

クール、ちょうど私がプレーンなpythonに到達する必要があるかどうかを知りたいライブラリー、またはそれを行うための道化した方法があった – deltaskelta

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をお読みください。

関連する問題