-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
django 코드를 보려고 하는데 질문드립니다.
23.01.25 16:54 작성 23.01.25 16:56 수정 조회수 244
0
저는 클래스의 self가 클래스의 인스턴스를 만들었을때 그 인스턴스 자신을 self라고 하는것으로 알고있었습니다. 그런데 장고코드에는 클래스기반뷰에서 클래스의 인스턴스를 만들지 않음에(예를들어 a=RedirectVIew()어쩌구 하는게 아니라 a=RedirectView.as_view()를 통해서 함수를 넘기잖아요)도 불구하고 self가 다양하게 들어가는데 이건 어떤 의미인가요?^^;;
답변을 작성해보세요.
0
이진석
지식공유자2023.01.25
안녕하세요.
아래에서 .as_view 함수의 구현을 찾아보실 수 있는데요https://github.com/django/django/blob/4.1.5/django/views/generic/base.py#L80
.as_view() 함수는 클래스메서드로서 호출 시에, 새로운 view 함수를 생성하고,
이를 반환해주는 역할을 합니다. 즉, as_view() 함수는 뷰 함수를 생성해줍니다.
웹 요청이 들어오면, 생성된 view 함수가 호출이 되면서 요청을 처리합니다. 매 요청 처리시마다 해당 클래스의 인스턴스가 생성이 되면서 요청을 처리하게 됩니다.
즉, 우리가 인스턴스 생성에 관여하지 않습니다.
살펴보시고, 또 질문 남겨주세요.
화이팅입니다. :-)
답변 1