[점프 투 장고] views.py의 메서드에 매개변수가 넘어오는 원리 질문

views.py의 각 메서드들마다 request 매개변수가 있습니다. 이 부분이 이해가 잘가지 않습니다.
페이징 뿐만 아니라 파이썬 과 웹개발 자체에를 잘 몰라서하는 질문입니다.

일반적으로 직접적으로 메서드를 호출하고 구현하는게 아니면 특정 라이브러리 class에서 상속을 받아 재정의를 해서 쓰기때문에 request매게 변수가 들어온다고 이해를 하던지

아니면 프레임워크가 DI 형태로 되어 있어있다면 특정 프레임워크에 A클래스를 가리키도록하여 A클래스 하위 메서드들이 매개변수를 받아 사용한다라고 여지것 이해했습니다. 그런데 pybo아니면 장고? 아니면 파이썬에서는 이게 어떻게 되는건가요?

대충 예상해본건 pybo 컴포넌트(?)에서
1. urls.py에서 urlpatterns 리스트를 읽는다.
2. 리스트의 객체에서 함수명을 찾는다. 함수명만 있을경우애는 request매게 변수만 넘긴다. 아니면 path에 값이 있을경우 이값도 매개변후로 값을 넘긴다. ex
urlspatterns 의 path('<int:question_id>/', views.detail, name='detail'), → def detail(request, question_id)의 question_id처럼.

질문하다보니 자문 자답 처럼되어버렸네요 ㅋㅋ 제가 예상해본 플로우가 맞는지 확인 부탁드리겠습니다.
감사합니다

tklee.me 733

M 2020년 7월 15일 5:06 오후

목록으로
1개의 답변이 있습니다. 1 / 1 Page

브라우저에서 장고 서버로 페이지 요청이 발생하면 장고는 urls.py를 먼저 찾고 요청된 페이지의 URL과 매핑되는 뷰함수를 찾게 됩니다.

그리고 뷰함수에 브라우저로부터 요청된 정보를 전달합니다.

브라우저에서 요청된 정보를 request라고 할 수 있습니다. 만약 이 request가 뷰함수에 전달이 되지 않는다면 브라우저가 어떤 값을 요청하는지 알 수 없을 겁니다.

따라서 말씀하신 것처럼 장고가 자동으로 브라우저의 요청을 request로 객체화하여 뷰 함수로 전달하게 됩니다.

도움이 되셨기를 바랍니다.

박응용

M 2020년 7월 15일 5:15 오후

장고 프레임워크가 하는 일이였군요 답변 감사드립니다>!!! - tklee.me님, 2020년 7월 15일 5:21 오후 추천 , 대댓글