[TIL]request.get 그리고 request.GET.get
request.get
,request.GET.get
처음 본 나는 그 차이점을 단 1도 알지 못했다.
아직도 많이 어려운 부분이라 한번 간단히 정리해 보려고한다!
여기서 알아둘점
request가 django에서의 request(사전형)인지 잘 구분!
1. request.get()
request
라는 객체에 get매소드
를 실행하는 것이다. 이때의 request의 객체는 사전형이다(은~근 헷갈림), 이말은 다르게 말하면 get() 은 사전형 객체에만 사용 할 수 있음을 의미한다.
그런데! 보통 django에서 인수로써 설정하는
request
는 사전형 데이터가 아님!
2. request.GET
request.GET
request.GET
은 Django에서 사용할 수 있다. 1번에서 언급했지만, 보통의 경우 Django에서의 request는 사전형 데이터가 아니다. 이 때,request.GET
을 사용하는걸로 http request의 정보를 사전형의 데이터로 얻을 수 있다. 즉, request.GET결과의 사전형에 get메소드를 사용하여 데이터를 취득하는 것이다
Django에서는 http request
의 내용을 얻을 때 request.GET
을 사용하는게 일반적이다. (이렇게 해야 에러가 발생하지 않는다)
request.GET.get()
왜 get()
을 붙일까? 만일 사전형이 아닌 값을 참조한 경우, 에러가 발생한다. 왜냐, 사전형이 아니니까!
def fbv(request):
print(request.GET['somekey'])
return HttpResponse('')
# django.utils.datastructures.MultiValueDictKeyError: 'somekey'
이때 get()
을 사용해주면 대상이 없는 경우 에러가 아닌 None
을 만들어준다
def fbv(request):
print(request.GET.get('somekey'))
return HttpResponse('')
# 결과값 None
Author And Source
이 문제에 관하여([TIL]request.get 그리고 request.GET.get), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@fhwmqkfl/TILrequest.get-그리고request.GET.get저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)