[LineAmigos Project] Day8 - data['name'] vs data.get('name')

petersoh·2020년 12월 21일
0

LineAmigoos

목록 보기
1/4

제목에서 드러나듯 이 둘의 근본적인 차이에 대한 이해 없이, 두가지 방법을 혼용해서 사용했습니다. 왜냐하면 두 과정에서 리턴되는 **값(value)**가 동일했기 때문에 더 그렇게 이해되었다.

하지만 사실 data.get('name')을 통해 리턴해주는 값은 **instance**이다

내가 혼란스러워했던 근본적인 이유는, QuerySet 과 Instance에 대한 정확한 이해의 부재 때문이다

참고
Difference between cleaned_data and cleaned_data.get in Django

기본중에 기본이지만

data['key'] 와 data.get(name ='')

if the key does not exist in the dictionary, self.cleaned_data[‘field’] will raise a KeyError, while self.cleaned_data.get(‘field’) will return None.

이말은 결국 디버깅을 할 때 정확한 상황에 대한 이해를 기반으로 작업을 할 수 있고 없고의 차이가 아닐까 싶다!

data.GET.get의 의미에 대해 생각해본다

Query String 형태로 들어오는 데이터에 대해허, ()안에 값을 KEY로 이해해주고, 해당 변수는 Value 로 인식해서 저장해주는 방식이다.

또한, get은 만약에 조건에 맞는 객체가 없을 때(=None)는 **DoesNotExist**에러를 발생하고 filter는 **빈 리스트 객체(empty 'list' object)**를 리턴한다.

https://hoorooroob.tistory.com/entry/Django-Model-%EC%BF%BC%EB%A6%AC%EB%A7%8C%EB%93%A4%EA%B8%B0-1

Get.get
https://stackoverflow.com/questions/44598962/what-does-request-get-get-mean

https://yulme.tistory.com/56

결국 아직 이 개념이 정확하겍 잡히지 않았던 이유는 QuertSet 객체와

profile
def backend_engineer():

0개의 댓글