7

ですから、私は全体としてWeb開発にほとんどまったく慣れていませんが、Djangoを使用してWebサービスからデータをプルおよび解析するサイドプロジェクトに投げ込まれ、Djangoを見ながら、物事がどのように機能するかを正確に理解するのに苦労しています。ドキュメンテーション。

Djangoでは、すべてを基本レベルでセットアップして動作させています(テンプレートを使用すると、「HelloWorld」というページが表示されます)。

ここで、Webサービスからデータをプルするために、次の形式のURLにリクエストを送信する必要があります。

http://wbsapi.withings.net/[service_name]?action=[action_name]&[parameters]

提供されているPHPの例では、cURLを使用してこれを行い、次にjson_decodeを使用します。

Djangoから同様の機能を引き出すにはどうすればよいですか?前もって感謝します!

4

2 に答える 2

11

標準モジュール(または、優れたライブラリ要求と)を使用urllib2します。jsonjson

import urllib2
import json

url = 'http://wbsapi.withings.net/[service_name]?action=[action_name]&[parameters]'
serialized_data = urllib2.urlopen(url).read()

data = json.loads(serialized_data)

 

ページ上で必要な場合は、ビュー内で必要です。これは、URLに関連付ける必要があります。

あなたのurls.pyようなものが含まれます

from django.conf.urls import patterns, url, include

urlpatterns = patterns('',
    (r'^get_data/$', 'myapp.views.get_data'),
)

そして、あなたmyapp/views.pyは次のようなものを含みます

from django.http import HttpResponse
import urllib2
import json

def get_data(request):
    url = 'http://wbsapi.withings.net/[service_name]?action=[action_name]&[parameters]'
    serialized_data = urllib2.urlopen(url).read()

    data = json.loads(serialized_data)

    html = "<html><body><pre>Data: %s.</pre></body></html>" % json.dumps(data, indent=2)

    return HttpResponse(html)

もちろん、データをどのように表示したいかわからないので、もう一度シリアル化しました:)

于 2013-01-03T16:59:26.750 に答える
0

この種の機能をDjangoに実装することは可能ですが、多くの中間ステップが含まれます。まず、Pythonを使用してWebサービスをクエリする方法について考える必要があります。このために、これに最適なRequestsモジュールを強くお勧めします。

于 2013-01-03T17:00:50.287 に答える