TIL-30. UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 150: invalid start byte

solarrrrr·2021년 12월 22일
0

Today I Learned

목록 보기
30/74

웹사이트에서 개인 정보 수정 관련 부분 구현 중
해당 오류를 만났다.

프로필 사진과 닉네임 같은 정보를 수정한 후
사진은 AWS S3에 업로드하고 URL 주소와 닉네임 정보는
DB에 저장하려고 하는데
postman으로 테스트 시 위와 같이 오류가 발생했다.

이미지 업로드를 하지 않고 보통은 키값만 넘길 때
raw에 json으로 선택해 딕셔너리로 묶어 send를 하곤 했다.
그럼 view에서 json.loads(request.body)로 해당 값을 받아서
필요한 처리를 하곤 했는데
이미지를 받아올 땐 raw 말고 form-data를 써야 하고
이미지는 json으로 보내는 것이 아니기 때문에
json.loads를 사용해 넘어오는 값을 받으면 위 오류가 발생하는 것이다.

이와 같은 경우

data = json.loads(request.body)
data['nickname']

이렇게 사용하지 않고

request.POST['nickname']

이런 식으로 바로 request 값을 직접 적어서 사용하면 된다.

profile
몰입

0개의 댓글