2020.09.24
2020.11.26 request.file 업데이트
데이터를 받아오고 주는 형식에는 여러 방법이 있다.
제가 알고있는 것과 사용해 본것을 다음에도 볼 것을 생각하여
메모를 해볼까 합니다.
request.GET.get() 은 GET 요청이 접근할 수 있는 키와 밸류값을 이용한다.
token = request.headers.get('Authorization', None)
방금 위처럼 사용하게 되면 headers 에서 get 을 방겠다는 말인데
그 get 받는것이 딕셔너리로 되어있고 key 가 Authorization 인것을 받겠다는 얘기입니다.
address_data = json.loads(request.body)
json.loads 는 말그대로 짐을 싣겠다는건데 그게 json 으로 실어서 보내겠다는 의미가 된다
파라미터에는 무엇을 실어서 보내겠냐는 얘기이고 request.body 에 있는것을 json 에 실어서 보내게 된다 .
data = json.loads(request.body)
review = data.get('review', None)
만약에 json.loads(request.body) 를 받아서
data 변수에 담고나서 ,
data.get('review' , None) 으로 해서 review 라는 키 를 들고와서 review 변수에 담으면 됩니다.
1. request.FILES.get
data = request.FILES.get('file',None)
print(data.name)
2. 삼항 연산자
filepath = request.FILES['filepath'] if 'filepath' in request.FILES else False
3. try except
from django.utils.datastructures import MultiValueDictKeyError
try:
filepath = request.FILES['filepath']
except MultiValueDictKeyError:
filepath = False
하지만 3번은 추천하는 방법은 아닙니다.
header 로 받는다 ?
request.headers.get 으로 받아야 한다.
body 로 받는다 ?
request.GET.get 으로 받아야한다 .
만약에 json.body 에 담아서 받고싶다면 ?
test = json.loads(request.body)
result_test = test.get('data' , None)
이렇게 받으면 됩니다.
만약에 Jquery 로 데이터를 보내게 될때 ,
data = json.loads(request.body)
로 해서 데이터가 안받아지는경우가 있다.
이럴때
data = request.body
로만해서 받아야 한다.