-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
jsonify를 꼭 써야 하나요?
21.05.24 19:48 작성 조회수 1.1k
0
영상 8분 35초 부근 입니다.
영상을 보다가
return_data 는 이미 json 파일 형식인데
왜 jsonify를 또 해야할까 하는 생각이 들었습니다
@app.route('/login')
def login():
username = request.args.get('user_name')
passwd = request.args.get('pw')
email = request.args.get('email_address')
print(username, passwd, email)
if username == 'dave':
return_data = {'auth': 'success'}
else:
return_data = {'auth': 'failed'}
return return_data
그래서 위와 같이 jsonify를 빼고 코드를 작성해도
아래와 같이
httpie 에서 정삭적으로 값이 출력됩니다.
jsonify를 적용 안하면 나중에 문제가 생기는지 궁금합니다!!
가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
Rest API 이해를 위한 웹기술 이해: GET 방식과 URL
강의실 바로가기
답변을 작성해보세요.
7
잔재미코딩 DaveLee
지식공유자2021.05.25
안녕하세요. 좋은 질문같아요. ㅎㅎ
일단, 파이썬에서 해당 데이터는 데이터 타입은 사실 사전이잖아요. 그래서 사전 데이터를 바로 리턴할 경우, 해당 데이터가 전달되기는 하지만, HTTP header 에 MIME Type 이 application/json 으로 명시가 되지 않았던 적이 있습니다. jsonify 로 리턴하면, 명시적으로 HTTP header 에도 MIME Type 이 application/json 으로 기재가 되고, 수신측에서도 이를 기반으로 적합하게 해당 데이터를 처리했다고 보시면 됩니다.
그런데, 꾸준히 웹이나, flask 가 개선되다보니, 최근에는 사실 그렇게 하지 않고, 막바로 사전 데이터를 보내도, 알아서 HTTP header 에도 MIME Type 이 application/json 으로 기재도 되고, 수신측에서도 꼭 굳이 저런 타입을 안붙여도 크게 무리 없이 처리가 가능한 것으로 이해가 됩니다.
json 데이터로 정확히 전달되기 위해, 필요한 기능들을 jsonify 가 완벽하게 해주었는데, 최근에는 jsonify 가 아니더라도 flask 에서 관련 기능들을 자동으로 해주고, 수신측도 완벽하지 않더라도, 가능한 처리를 해주는 상황이다 라고 이해를 해주시면 좋을 것 같습니다. 그래도 공식적인 것은 jsonify 를 json 데이터를 리턴할 때는 써준다 정도로 이해해보시면 어떨까요?
감사합니다.
답변 1