hy30nq's blog

Flask에서 `jsonify()`를 사용하는 이유와 예시 본문

Web/web dev

Flask에서 `jsonify()`를 사용하는 이유와 예시

hy30nq 2024. 6. 14. 22:43
728x90

안녕하세요 여러분! 오늘은 Flask에서 jsonify()를 사용하는 이유와 그 예시에 대해 자세히 알아보려고 해요. 웹 개발을 하다 보면 JSON 데이터를 주고받는 일이 많죠. 그럼 이제 Flask의 jsonify()에 대해 함께 살펴보아요.

jsonify()를 사용할까요?

  1. MIME 타입 설정
    • jsonify()는 HTTP 응답의 Content-Typeapplication/json으로 자동 설정해줘요. 클라이언트가 응답을 JSON 형식으로 인식할 수 있게 도와주죠.
  2. 특수 문자 처리
    • 파이썬 딕셔너리에 포함된 특수 문자를 JSON 표준에 맞게 이스케이프 처리해줘요. 덕분에 JSON 데이터가 깨지지 않고 올바르게 전달돼요.
  3. 유니코드 지원
    • jsonify()는 JSON 응답을 utf-8로 인코딩하여 반환해요. 그래서 다양한 언어와 문자를 포함한 데이터를 안전하게 전달할 수 있답니다.

이제 간단한 예시를 통해 jsonify()를 어떻게 사용하는지 살펴볼까요?

예시 코드

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/json')
def json_example():
    return jsonify({"message": "Hello World"})

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

위의 코드에서 /json 경로로 요청을 보내면 JSON 형식의 응답을 받게 돼요. 여기서 jsonify()는 파이썬 딕셔너리 {"message": "Hello World"}를 JSON 응답으로 변환하고, Content-Typeapplication/json으로 설정해준답니다.

좀 더 구체적인 예시

  1. 복잡한 데이터 구조
from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/user')
def user_info():
    user = {
        "name": "John Doe",
        "age": 30,
        "email": "john.doe@example.com",
        "address": {
            "street": "123 Main St",
            "city": "Anytown",
            "state": "CA",
            "zip": "12345"
        }
    }
    return jsonify(user)

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

이 예시에서는 사용자 정보를 포함한 복잡한 데이터 구조를 JSON으로 반환하고 있어요. jsonify()를 통해 간편하게 딕셔너리를 JSON 형식으로 변환할 수 있죠.

  1. 특수 문자 처리
from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/special')
def special_chars():
    data = {
        "message": "Hello, 世界! 🌍"
    }
    return jsonify(data)

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

이 예시에서는 유니코드 문자를 포함한 데이터를 반환하고 있어요. jsonify()를 사용하면 특수 문자와 유니코드 문자도 문제없이 처리할 수 있답니다.

이처럼 Flask의 jsonify()는 JSON 데이터를 쉽게 반환하고, 특수 문자와 유니코드도 안전하게 처리할 수 있는 매우 유용한 함수예요. 여러분도 Flask 프로젝트에서 JSON 데이터를 반환할 때 꼭 사용해보세요!

728x90