1. request.get()
- request라는 이름의 객체에 대해 get메소드를 실행하는 것이다.
-> 이때의 request객체는 사전형의 데이터이다.
request = {'key':10, 'animal':'cat'}
request.get('key')
- get메소드를 사용할 수 있는 것은 사전형 객체뿐이므로 django에 function based view를 정의할 때의 인수로써 설정하는 request는 사전형 데이터가 아닌 것을 주의하자.
def fbv(request):
print(request.get(''))
return HttpResponse('')
WSGI(Web Server Gateway Interface)
-> 웹 서버 소프트웨어와 파이썬으로 작성된 웹 응용 프로그램 간의 표준 인터페이스
2. request.GET
request.GET
은 django에서 사용할 수 있다.
- request는 Http request가 보내졌을 때에 django가 만든 객체이다.
request.GET
을 실행하는 것으로, request의 정보를 사전형의 데이터로 얻을 수 있게 된다.
-> request.GET
하는 것으로 get()을 사용하여 데이터를 얻을 수 있다.
def fbv(request):
print(request.GET['q'])
return HttpResponse('')
request.GET
형의 사전형이 아닌 파라미터를 참고한 경우에 어떻게 될까?
def fbv(request):
print(request.GET['somekey'])
return HttpResponse('')
- django에서 request의 내용을 얻어낼 때는
request.GET.get()
을 사용하는 것이 일반적이다.
-> get()은 대상이 되는 데이터가 없는 경우에 None이 리턴되기 때문이다.
def fbv(request):
print(request.GET.get('somekey'))
return HttpResponse('')
3. request.get과 request.GET.get의 차이점
request.get()
-> python의 문법, 대상은 사전형데이터로 key가 딕셔너리 안에 있으면 value를 리턴해준다, 키값이 존재하지 않으면 디폴트값 None을 리턴한다.
request.GET
-> django의 문법, 전달받은 것들을 모두 사전형 형태로 가져오는 것
request.GET.get()
-> django의 문법, key를 입력하면 value를 가져와준다, 키값이 존재하지 않으면 디폴트값 None을 리턴한다.
-> 에러가 발생하지 않아 일반적으로 request.GET.get()
을 사용한다.