티스토리 뷰


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
DRF IMAGE 복수 처리
1단계(설치) pip instll Pillow django djangorestframework 2단계(설치) django-admin startproject backend . django-admin startapp blog 3단계(settings.py) INSTALLED_APPS = [ ... 'django.contrib.sites',..
vixxcode.tistory.com

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/
Requests - Django REST framework
www.django-rest-framework.org
'파이썬 > DRF API Guide' 카테고리의 다른 글
2. Django - response에 대하여 (0) | 2021.06.24 |
---|
- Total
- Today
- Yesterday
- 2021 KAKAO BLIND RECRUITMENT
- 알고리즘
- PostgreSQL
- docker-compose
- Pattern
- 그래프
- 백준
- BFS
- Java
- Linux
- ubuntu
- Python
- django
- 자바
- 프로그래머스
- headers
- thread
- Celery
- docker
- 카카오
- Command Line
- Spring
- postgres
- dockerignore
- env
- DRF
- 파이썬
- 면접
- Collections
- setattr
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |