外部Webサイトからデータを解析する必要がある単純なビューがあるとします。これは許容使用され、すべてのDjangoの他のWebサイトからのデータのキャッシュ
def index(request):
source = urllib2.urlopen(EXTERNAL_WEBSITE_URL)
bs = BeautifulSoup.BeautifulSoup(source.read())
finalList = [] # do whatever with bs to populate the list
return render_to_response('someTemplate.html', {'finalList': finalList})
まず:
は今のところ、それは次のようになりますか?
明らかに、これはパフォーマンスが良いわけではありません。外部のウェブサイトのページはかなり大きく、私はそれのほんの一部を抽出しています。私は2つのソリューションを考えました:
- これをすべて非同期で行います。ページの残りの部分を読み込み、取得したらデータを入力します。しかし、私はどこから始めるべきか分からない。私はちょうどDjangoから始まり、今まで非同期を何もしていません。
- このデータが2〜3分ごとに更新されるかどうかは気にしないので、キャッシングも良い解決策です(余分な往復も節約できます)。このデータをキャッシュするにはどうすればいいですか?
「許容できる使用」を定義してください。何の使用?誰かの著作物の使用? urrlib2の使用? Djangoの使用?誰に受け入れられますか?私?君は?著作権のある素材の所有者ですか? Djangoの開発者ですか? urllib2の開発者ですか? –