加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用Django发出HTTP请求并反序列化输出

发布时间:2020-12-16 22:59:51 所属栏目:Python 来源:网络整理
导读:所以我对整个Web开发几乎全新,但是已经被投入到使用Django从Web服务中提取和解析数据的侧面项目中,并且正在努力理解事情是如何工作的,即使在查看Django时也是如此.文档. 在Django中,我已经完成了所有设置并在基本级别工作(使用模板,显示的页面显示“Hello Wo
所以我对整个Web开发几乎全新,但是已经被投入到使用Django从Web服务中提取和解析数据的侧面项目中,并且正在努力理解事情是如何工作的,即使在查看Django时也是如此.文档.

在Django中,我已经完成了所有设置并在基本级别工作(使用模板,显示的页面显示“Hello World”).

现在,为了从webservice中提取数据,我需要向以下格式的URL发出请求:

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

在提供的PHP示例中,他们使用cURL,然后使用json_decode执行此操作.

我如何才能从Django中获得类似的功能?提前致谢!

解决方法

您将使用urllib2和json标准模块(或者,优秀的库 requests和json):
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)

如果你想在一个页面上,你需要它在view,你需要associate with an 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)

当然,我不知道你希望如何显示你的数据,所以我再次序列化了:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读