inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]

Rest API 이해를 위한 웹기술 이해: GET 방식과 URL (업데이트)

jsonify를 꼭 써야 하나요?

1446

가후

작성한 질문수 90

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를 적용 안하면 나중에 문제가 생기는지 궁금합니다!!

jsonify rest-api python flask

답변 1

7

잔재미코딩 DaveLee

안녕하세요. 좋은 질문같아요. ㅎㅎ

일단, 파이썬에서 해당 데이터는 데이터 타입은 사실 사전이잖아요. 그래서 사전 데이터를 바로 리턴할 경우, 해당 데이터가 전달되기는 하지만, 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 데이터를 리턴할 때는 써준다 정도로 이해해보시면 어떨까요?

감사합니다.

강의 자료 어디서 다운받나요? 없는데요..

0

159

1

강의 영상은 안나오고 소리만 나옵니다.

0

182

1

섹션 6 인증 failed 질문

0

157

1

섹션 8 flask 다양한 기능: 다양한 데코레이터 before_first_request 문의

0

368

3

192.168.0.12:8085??

0

157

1

04_flask_ABTest에서 blog_abtest.py 실행 시 오류입니다.

0

172

1

수업내용 질문 건

0

191

1

brew로 mysql 설치 후 서버 실행할 때, 터미널에서 anaconda bin 참조하는 문제

0

677

2

crossorigin 프로퍼티에 대해서 질문드립니다.

0

290

1

강의자료 다운로드 문의드립니다.

1

272

1

갑자기 웹 서버 띄울때 이상하게 나옵니다

0

317

1

가장빠른 Vue와 flask, 그리고 REST API 1 강의 질문입니다. (2)

0

350

1

가장빠른 Vue와 flask, 그리고 REST API 1 강의 질문입니다.

0

328

2

Fast api 추가 강좌 개설여부 질문드립니다!.

0

321

2

flask_cors설치 오류

0

622

2

부스트랩 html 다운

0

259

1

혹시 강의자료 공유가 가능한가요?

0

358

1

소스코드는 어디에 있을까요??

1

258

1

안녕하세요 몇가지 질문이 있습니다.

0

342

1

동적함수생성 질문드립니다.

1

635

2

(강의명) flask 로 Rest API 구현과 테스트 실행 : 오류 문의

0

579

1

백엔드 데코레이터 2 강의에 도전 문제 질문드립니다

0

292

1

몽고 DB 공식홈페이지 403 접속 에러 발생합니다.

1

630

3

04._flask_ABTest Pycharm 에서 실행오류

0

496

1