티스토리 뷰
반응형
views.py 코드 일부분
class BlogView(APIView):
permission_classes = (permissions.IsAuthenticated,)
def post(self, request):
print("request",request)
print("request.data: ",request.data)
print("request.data의 타입: ",type(request.data))
print("request.FILES: ",request.FILES)
print("request.FILES의 타입: ",type(request.FILES))
print("request.method: "+str(request.method))
print("request.content_type: ",request.content_type)
print("request.stream: ",request.stream)
print("****만약에 인증이 되어있다면****")
print("request.user: ",request.user)
print("request.auth: "+str(request.auth))
res = BlogSerializer(data=request.data)
if not res.is_valid():
return Response({'succsess': False}, status=status.HTTP_400_BAD_REQUEST)
title= res.validated_data['title']
Blog.objects.create(userId=request.user,title=title)
return Response({'success': True}, status=status.HTTP_200_OK)
결과
request <rest_framework.request.Request: POST '/api/blog'>
request.data: <QueryDict: {'title': ['hi'], 'images': [<TemporaryUploadedFile: IMG_1240.jpg (image/jpeg)>, <TemporaryUploadedFile: IMG_1241.jpg (image/jpeg)>]}>
request.data의 타입: <class 'django.http.request.QueryDict'>
request.FILES: <MultiValueDict: {'images': [<TemporaryUploadedFile: IMG_1240.jpg (image/jpeg)>, <TemporaryUploadedFile: IMG_1241.jpg (image/jpeg)>]}>
request.FILES의 타입: <class 'django.utils.datastructures.MultiValueDict'>
request.method: POST
request.content_type: multipart/form-data; boundary=--------------------------438768347583439112809322
request.stream: <WSGIRequest: POST '/api/blog'>
****만약에 인증이 되어있다면****
request.user: admin
request.auth: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjI0NTMwNzA3LCJqdGkiOiI5OTc3OWI3ZmE5MWE0NTkwYTliMjcxMGMxNzljM2QyYiIsInVzZXJfaWQiOjEsImlzX3N0YWZmIjp0cnVlLCJpc19zdXBlcnVzZXIiOnRydWV9.Gz7nuCjaQzV-F3Clmrf_eS43CVe0dB7ObUtCas655R4
request.data
request.data는 parsing된 request의 body의 content부분을 반환해준다.
보시다시피 file부분(위의 예에서는 'images')과 non-file(위의 예에서는 'title')을 포함합니다.
request.FILES
이미지 파일 같은 요청 값들을 반환해준다.
해당 데이터 이용은 다음 아래의 링크를 눌러서 확인해보자.
https://vixxcode.tistory.com/83
request.method
요청된 메소드가 어떤 메소드인지 반환해준다. (대문자로 표시된 문자열로 반환해준다.)
request.content_type
해당 request의 body가 어떤 타입인지 반환해준다. 위의 경우에는 'images'가 포함되서 multipart/form-data로 반환되었다.
request.user
위의 예에서는 JWT를 사용하여 회원 인증을 하기 때문에 request.user는 해당 JWT의 username부분을 가져온다.
request.auth
위의 예에서는 JWT를 사용했기 때문에 JWT의 값을 가져온다.
참고: https://www.django-rest-framework.org/api-guide/requests/
반응형
'파이썬 > DRF API Guide' 카테고리의 다른 글
2. Django - response에 대하여 (0) | 2021.06.24 |
---|
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- postgres
- ubuntu
- 그래프
- 카카오
- thread
- Command Line
- docker-compose
- 파이썬
- Collections
- 2021 KAKAO BLIND RECRUITMENT
- env
- docker
- Java
- Celery
- headers
- DRF
- setattr
- Python
- dockerignore
- Pattern
- 알고리즘
- 프로그래머스
- django
- Spring
- 자바
- BFS
- 면접
- PostgreSQL
- 백준
- Linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함