python - 종류 - 파이썬 클래스 코드




장고의 클래스 뷰 (6)

Django Generic Views를 사용할 수 있습니다. Django Generic Views를 통해 원하는 기능을 쉽게 얻을 수 있습니다

Django 뷰는 함수를 가리키며, 약간의 기능 만 변경하려는 경우 문제가 될 수 있습니다. 예, 함수에 백만 개의 키워드 인수와 더 많은 if 문을 가질 수 있지만 객체 지향 접근 방식에 대해 더 많이 생각하고있었습니다.

예를 들어 사용자를 표시하는 페이지가 있습니다. 이 페이지는 그룹을 표시하는 페이지와 매우 유사하지만 여전히 다른 데이터 모델을 사용하는 것과 유사하지는 않습니다. 그룹에도 회원이 있습니다 ...

한 가지 방법은 뷰를 클래스 메서드로 가리킨 다음 해당 클래스를 확장하는 것입니다. 누구 든지이 접근법을 시도하거나 다른 아이디어가 있습니까?


단순히 모델의 데이터를 표시하는 경우 Django Generic Views를 사용하지 않는 이유는 무엇입니까? URL 매개 변수를 뷰에 매핑, 데이터 페치, 엣지 케이스 처리, 출력 렌더링 등에 대한 자체 뷰를 작성하지 않고도 모델의 데이터를 쉽게 표시 할 수 있도록 설계되었습니다.


약간 복잡한 작업을 수행하지 않으려면 일반적인보기를 사용하는 것이 좋습니다. 그것들은 이름이 의미하는 것보다 훨씬 강력하며 모델 데이터를 표시하는 경우 일반 뷰가 작업을 수행합니다.


일반적인보기가 일반적으로 사용되지만 궁극적으로는 원하는 URL을 자유롭게 처리 할 수 ​​있습니다. FormWizard는 RESTful API 용 일부 앱과 마찬가지로 클래스 기반 방식으로 작업을 수행합니다.

기본적으로 URL을 사용하면 호출 가능한 변수를 제공 할 수있는 많은 변수와 장소가 주어집니다. 제공하는 호출 가능한 것은 전적으로 귀하에게 달려 있습니다. 표준 방법은 함수를 제공하는 것입니다. 그러나 궁극적으로 Django는 수행하는 작업에 제한을 두지 않습니다.

이 작업을 수행하는 방법에 대한 몇 가지 예가 더 좋을 것이라는 데 동의합니다. FormWizard는 아마도 시작해야 할 곳입니다.


페이지간에 공통 기능을 공유하려면 사용자 정의 태그를 참조하십시오. 그것들은 작성하기 쉽고 매우 강력합니다.

또한 템플릿은 다른 템플릿에서 확장 될 수 있습니다 . 이를 통해 페이지의 레이아웃을 설정하고 공백을 채우는 다른 템플릿간에이 템플릿을 공유 할 수있는 기본 템플릿을 사용할 수 있습니다. 템플릿을 원하는 깊이에 중첩시킬 수 있습니다. 한 곳에서 개별 관련 페이지 그룹에 레이아웃을 지정할 수 있습니다.


항상 클래스를 만들고 __call__ 함수를 재정의 한 다음 URL 파일을 클래스의 인스턴스로 가리킬 수 있습니다. 이것이 어떻게 수행되는지 FormWizard 클래스를 살펴볼 수 있습니다.







oop