2012-03-23 2 views
1

현재 플라스크를 사용하는 Python으로 RESTful 웹 서비스를 만들고 있습니다. 이제 webservice API를 사용/구현할 클라이언트 측에서 XML (또는 JSON) 형식으로 출력을 가져 오려고합니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까? 나는 이미 jsonify를 시도했지만 성공하지 못했습니다. 또한, 출력에서 ​​XML 형식을 선호하지만, 다시, 어떻게 해야할지 모르겠다. 누군가가 저에게 아이디어를 줄 수 있기를 바랍니다. 피드백을받을 바라고[Python-Webservice] : Flask에서 XML 형식을 반환하고 사용하는 방법

/*** webservice ***/ 
from flask import Flask, jsonify 
app = Flask(__name__) 

@app.route("/") 
def hello_world(): 
    return jsonify(message = "hello world!") 

if __name__ == "__main__": 
    app.run() 

/*** client code ***/ 
import urllib2 
server = "http://localhost:5000/" 
req = urllib2.Request(server) 
# req has no data at all :(

:

다음은 더미 코드 잘하면 내 질문에 명확하게 조각입니다. 미리 = ks보다

+2

제안 : urllib2 대신 [Requests] (http://docs.python-requests.org/)를 사용하면 API가 훨씬 더 좋습니다. –

답변

0

서버 코드가 정상적으로 실행됩니다. 일반적인 웹 브라우저로 테스트해야하며 json 응답이 표시됩니다. 고객 코드가 완료되지 않았습니다. 내 보정이 :

import urllib2 
server = "http://localhost:5000/" 
req = urllib2.Request(server) 
response = urllib2.urlopen(req) 
print response.read() 

파이썬에서 HTTP 요청을 할 수있는 더 좋은 방법은 매우 간단하지만 매우 강력한 API를 제공합니다 requests module을 사용하는 것입니다.

import requests 
res = requests.get("http://localhost:5000/") 
print res.text 

내가 그의 멋진 etree의 MODUL와 lxml를 추천 할 것입니다 XML 응답을 구축합니다. xml.etree 밑의 표준 라이브러리에 etree 모듈이 있습니다.

+0

감사합니다 Jarus ... 나는 lxml에 익숙하며 텍스트 파일을 출력하는 데 사용합니다. 하지만 나머지 API에서는 어떻게해야합니까? 나는 lxml 형식으로 반환을 변환해야합니까? – jaysonpryde

+0

JSON은 XML보다 훨씬 강력하고 눈에 띄기 때문에 JSON을 사용합니다. etree를 xml 문자열로 변환하는 것보다 lxml을 사용하고 view 함수를 사용하여이 문자열을 반환해야합니다. – Jarus

관련 문제