make_reponse 와 Response 의 차이
결국 2개는 같지만, make_response 가 좀 더 사용하기 편리하게 되어 있다고 보면 된다.그러나 앞으로 flask 가 version up 되면서 Flask 의 response_class 를 Response class 외에 다른 class 로 교체를 하게 되는 경우가 발생한다고 가정한다면 make_response 를 사용하는 것이 호환성(compatibility)을 위해 좋을 듯 하다.
하지만 make_response 가 Response 를 완전히 이용할 수 있게 해주지 못한다. 좀 더 detail 한 Response class 의 이용을 위해서라면 Response 를 직접 호출하는 것이 낫다.
아니면 아래 처럼 사용할 수도 있다.
response = make_response(Response(generate(), mimetype='text/csv'))
# helpers.py def make_response(*args): if not args: return current_app.response_class() if len(args) == 1: args = args[0] return current_app.make_response(args) # flask/app.py class Flask ... response_class = Response ... def make_response(self, rv): if isinstance(rv, tuple): rv, status, headers = rv + (None,) * (3 - len(rv)) if rv is None: raise ValueError('View function did not return a response') if not isinstance(rv, self.response_class): if isinstance(rv, (text_type, bytes, bytearray)): rv = self.response_class(rv, headers=headers, status=status)
댓글 없음:
댓글 쓰기