[파이썬] Flask에서의 JSON 응답

Flask는 Python으로 작성된 경량 웹 프레임워크로, JSON 응답을 생성하고 처리하는 기능을 갖추고 있습니다. JSON은 데이터를 구조적으로 표현하기 위한 형식으로, 웹 애플리케이션과의 데이터 교환에 매우 효과적입니다.

Flask에서 JSON 응답을 생성하기 위해서는 jsonify 함수를 사용합니다. 이 함수는 딕셔너리 또는 리스트와 같은 Python 객체를 JSON 형식으로 변환하여 응답으로 보내줍니다.

JSON 응답 생성 예제

아래는 Flask에서 JSON 응답을 생성하는 예제 코드입니다:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api/users', methods=['GET'])
def get_users():
    users = [
        {'id': 1, 'name': 'John Doe'},
        {'id': 2, 'name': 'Jane Smith'},
        {'id': 3, 'name': 'David Johnson'}
    ]
    return jsonify(users=users)

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

/api/users 경로로 GET 요청이 오면, get_users 함수가 실행되어 사용자 정보가 담긴 리스트를 JSON 형식으로 변환하여 응답으로 보냅니다. 응답은 다음과 같이 구조화된 JSON 형식으로 반환됩니다:

{
    "users": [
        {"id": 1, "name": "John Doe"},
        {"id": 2, "name": "Jane Smith"},
        {"id": 3, "name": "David Johnson"}
    ]
}

JSON 응답 처리 예제

Flask 애플리케이션은 클라이언트로부터 받은 JSON 요청을 처리할 수도 있습니다. 이를 위해서는 request 객체를 사용하여 클라이언트가 보낸 JSON 데이터를 추출할 수 있습니다. 추출한 데이터는 Python 객체로 변환하여 처리할 수 있습니다.

아래는 Flask에서 JSON 응답을 처리하는 예제 코드입니다:

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/api/users', methods=['POST'])
def create_user():
    data = request.get_json()
    name = data['name']
    # 새로운 사용자 생성 로직
    # ...

    # 새로운 사용자 정보를 JSON 형식으로 응답
    user = {'id': 4, 'name': name}
    return jsonify(user=user), 201

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

/api/users 경로로 POST 요청이 오면, create_user 함수가 실행되어 전달된 JSON 데이터를 추출하여 새로운 사용자를 생성합니다. 그리고 새로운 사용자 정보를 JSON 형식으로 변환하여 응답으로 보냅니다. 응답은 다음과 같이 구조화된 JSON 형식으로 반환됩니다:

{
    "user": {"id": 4, "name": "John Smith"}
}

위의 예제에서는 201 상태 코드를 함께 반환하여, 새로운 사용자가 생성되었음을 클라이언트에 알려줍니다.

Flask에서 JSON 응답을 생성하고 처리하는 방법에 대한 간단한 예제를 살펴보았습니다. 이를 통해 웹 애플리케이션에서 효과적인 데이터 교환을 위한 JSON 응답을 구현할 수 있습니다. Flask의 다양한 기능들을 활용하여 더욱 복잡하고 유연한 웹 애플리케이션을 개발할 수 있습니다.