2014-01-24 38 views
0

我是一名GUI開發人員。我有服務器端代碼,它將爲我提供一個僅返回JSON的REST API。因此,使用這個本地rest API,我必須在基於Django框架的現有項目中編寫代碼來顯示GUI部分。如何在Django框架工作中使用本地rest api?

我的休息API就像http://<ip>:8080/wm/core/controller/switches/json。這個API將給出我想在使用Django的GUI上顯示的交換機列表。有一種可能性是從JavaScript調用API以在view.py文件中運行,該文件將JSON返回到JavaScript文件並使用JavaScript處理它的數據。可能嗎?

如何使用Django GUI調用這些原生rest API並設計GUI視圖?

+1

我不清楚你想達到什麼目的。你是否想使用Django視圖作爲json文件的代理,比如在將它發送到javascript代碼之前修改responde?即爲什麼你不能直接從JavaScript調用API? – furins

+0

我在Django web框架中開發了一個項目,因此我必須使用第三方REST API將一個外部模塊集成到此項目中。我如何在Django中實現? –

+0

仍然不清楚 - 你真的應該向我們展示一些代碼或一些關於你想用這個API做什麼的細節。你需要在你的Django代碼中「使用」REST查詢的結果,或者結果必須「按原樣」傳輸到你的視圖呈現的JavaScript代碼中? – furins

回答

0

使用urllib2.urlopen功能來提交您的請求,REST服務器並獲得響應:

import urllib 
import urllib2 

url = 'http://acme.com:8080/wm/core/controller/switches/json' 
params = urllib.urlencode({ 
    'firstName': 'John', 
    'lastName': 'Doe' 
}) 
response = urllib2.urlopen(url, params).read() # a POST request 

然後,最終解析JSON文件,以生成您的GUI

import json 
from pprint import pprint 

data = json.loads(response) 
pprint(data) 

相關文件:urllib2.urlopenjson

+0

謝謝furins ...我將在我的項目中執行此操作並回復您 –

+0

確保,讓我知道如果它不清楚,或者如果答案不解決你的疑惑。 – furins

+0

嗨弗林斯。它的工作正常。謝謝.. –