수색…


Flask API에서 JSON 응답 반환

Flask에는 jsonify() 라는 유틸리티가있어서 JSON 응답을보다 편리하게 반환 할 수 있습니다.

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api/get-json')
def hello():
    return jsonify(hello='world') # Returns HTTP Response with {"hello": "world"}

curl 시도해보십시오.

curl -X GET http://127.0.0.1:5000/api/get-json
{
  "hello": "world"
}

jsonify() 를 사용하는 다른 방법들

기존 사전 사용 :

person = {'name': 'Alice', 'birth-year': 1986}
return jsonify(person)

목록 사용 :

people = [{'name': 'Alice', 'birth-year': 1986},
          {'name': 'Bob', 'birth-year': 1985}]
return jsonify(people) 

HTTP 요청으로부터 JSON 수신하기

HTTP 요청의 MIME 형식이 application/json 경우 request.get_json() 을 호출하면 구문 분석 된 JSON 데이터가 반환되고 그렇지 않으면 None 이 반환됩니다.

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api/echo-json', methods=['GET', 'POST', 'DELETE', 'PUT'])                                                                                                    
def add():                                                                                                                              
    data = request.get_json()
    # ... do your business logic, and return some response
    # e.g. below we're just echo-ing back the received JSON data
    return jsonify(data)

curl 시도해보십시오.

-H 'Content-Type: application/json' 매개 변수는 JSON 요청임을 지정합니다.

 curl -X POST -H 'Content-Type: application/json' http://127.0.0.1:5000/api/echo-json -d '{"name": "Alice"}'               
{
  "name": "Alice"
}

다른 HTTP 메소드를 사용하여 요청을 보내려면 curl -X POST 를 원하는 메소드 (예 : curl -X GET , curl -X PUT 등)로 대체하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow