포도가게의 개발일지

Flask jsonify? vs json.dumps 본문

카테고리 없음

Flask jsonify? vs json.dumps

grape.store 2021. 7. 12. 15:30
반응형
def jsonify(*args, **kwargs):
    if __debug__:
        _assert_have_json()
    return current_app.response_class(json.dumps(dict(*args, **kwargs),
        indent=None if request.is_xhr else 2), mimetype='application/json')

우선 def jsonify()에서 볼 수 있듯이 Flask에서 json response을 보내기 위해 만들어진 함수이다

1 json.dumps

python이 가지고 있는 json library의 json.dumps() method는 수동으로 MIME type header를 추가해주어야 하는 encoded string을 리턴한다.

하지만 flask가 알아서 판단해 response를 자동으로 보내주도록 사용하기 때문에 직접적으로 사용할 수 있다. 다만 reponse header fields는 디폴트(text/html; charset=utf-80)로 처리된다.

 

2 차이점

# jsonify
return jsonify({'token' : token}), 200

# json.dumps
return json.dumps({'token' : token}), 200

2.1 Parameter accepted

  • jsonify : 참고한 글에서는 dictionary type만 된다고 적혀 있는데, 테스트를 해보니 이제 리스트도 받을 수 있다. 아마 업데이트가 된 것 같다.(Flask에서 정의되 있는 함수기 때문에 Flask 앱 내에서만 사용 가능), 좀 더 다양한 형식을 보낼려면 json.dump가 나음
  • json.dumps : jsonify 보다 더 다양한 type을 받을 수 있다고 나와있다.(shell에서 바로 return받을 수 있다)
Comments