hy30nq's blog
Flask에서 `jsonify()`를 사용하는 이유와 예시 본문
728x90
안녕하세요 여러분! 오늘은 Flask에서 jsonify()
를 사용하는 이유와 그 예시에 대해 자세히 알아보려고 해요. 웹 개발을 하다 보면 JSON 데이터를 주고받는 일이 많죠. 그럼 이제 Flask의 jsonify()
에 대해 함께 살펴보아요.
왜 jsonify()
를 사용할까요?
- MIME 타입 설정
jsonify()
는 HTTP 응답의Content-Type
을application/json
으로 자동 설정해줘요. 클라이언트가 응답을 JSON 형식으로 인식할 수 있게 도와주죠.
- 특수 문자 처리
- 파이썬 딕셔너리에 포함된 특수 문자를 JSON 표준에 맞게 이스케이프 처리해줘요. 덕분에 JSON 데이터가 깨지지 않고 올바르게 전달돼요.
- 유니코드 지원
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-Type
을 application/json
으로 설정해준답니다.
좀 더 구체적인 예시
- 복잡한 데이터 구조
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 형식으로 변환할 수 있죠.
- 특수 문자 처리
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
'Web > web dev' 카테고리의 다른 글
Flask Jinja2 템플릿 엔진 사용법 가이드 (1) | 2024.06.15 |
---|---|
Flask에서 make_response() 함수 사용하기: 예시와 함께 알아보기 (0) | 2024.06.14 |
Flask에서 요청 처리하는 방법 (0) | 2024.06.14 |
파이썬 타입 힌트와 Flask의 URL 타입 힌트 비교 (0) | 2024.06.14 |
Flask URL 빌더와 url_for() 함수 사용법 (0) | 2024.06.14 |