sklass의 s-class 프로그래밍 blog

[django] drf의 request.data.get() 본문

django

[django] drf의 request.data.get()

sklass 2021. 10. 22. 16:51

보통 프론트에서 json형태로 오는 요청들은 모두 string으로 변환되어서 옵니다.

 

하지만 django drf를 사용하면, json으로 오는 요청들을 굳이 json.loads()를 이용해서 dict형태로 바꾸어주지 않아도, drf의 request.data.get()을 사용하면 알아서 바꿔주게 됩니다. 

json형태로 request가 오는 경우

하지만 만약에 요청이 json형식이 아닌, form data형식으로 온다면, request.data.get()을 이용하더라도 자동으로 dict형태로 변환되지 않고, string으로 오기때문에 request.data.get() 후에 json.loads()로 dict 형태로 data를 변경해주어야한다.

form-data형태로 request가 오는 경우

만약 아래와 같이 project_id라는 키값으로 1을 보내면, drf의 request.data.get()을 사용하지 않고 요청 data를 받으면 project_id의 타입은 str일 것입니다.

하지만 아래와 같이 request.data.get()으로 project_id의 값을 받으면 요청값은 int로, 원래 프론트엔드에서 보냈던 그대로의 타입으로 자동변환되어 요청 데이터가 넘어오게 됩니다.

int형태로 보내면 int로 자동 변환해주는 data.get()