Request 관련 메소드 비교
request.get과 request.GET.get
request.get과 request.GET.get의 차이점
request.get
은 Python의 문법
request.GET
은 Djang의 문법이라는 이미지
request.get
- request라는 이름의 객체에 대해 get 메소드를 실행하는 것
- 이때의 request 객체는 사전형의 데이터
- get 메소드를 사용할 수 있는 것은 사전형 객체 뿐
request = {'cat':10, 'dog':17}
request.get('cat')
>>>10
- Django에 Function Based View를 정의할 때의 인수로써 설정하는 'request'는 사전형 데이터가 아님
def test(request):
print(request.get(''))
return HttpResponse('')
request.GET
request.GET
은 Django에서 사용 가능
- request는 HTTP 리퀘스트가 보내졌을 때에 Django가 만든 객체
request.GET
을 실행하는 것으로 request의 정보를 사전형의 데이터로 얻을 수 있게 됨
request.GET
하는 것으로 get메소드를 사용하여 데이터를 취득하는 것이 가능
def test(request):
print(request.GET['a'])
return HttpResponse('')
>>> 100
def test(request):
print(request.GET['somekey'])
return HttpResponse('')
- Django에는 request의 내용을 얻어낼 때는
request.GET.get
을 사용하는 것이 일반적
- get 메소드는 대상이 되는 데이터가 없는 경우에 None이 리턴되기 때문
def test(request):
print(request.GET.get('somekey'))
return HttpResponse('')
>>> None
마무리
- request.get()은 Python 메소드이며 대상은 사전형 데이터
- Django의 request는 사전형이 아님
- request를 사전형으로 바꿀 수 있는 것이 request.GET
- 에러가 발생하지 않기 때문에 request.GET.get을 사용하는 것이 일반적