Django/Python으로 시작하여 장고가 요구하는 프로그래밍의 MTV 모드로 전환하려고합니다 (주장합니다). 어떤 기능이 모델의 방법이어야하는지에 대한 결정은 단순한 관점에서의 기능이라는 것이 지금까지 혼란 스러웠습니다. 누구든지 책, 웹 사이트, 블로그, 슬라이드 쇼를 알고 있습니까? 더 일반적이고 추상적 인 용어로 Web Framework 프로그래밍에 대해 논의하는 내용은 무엇입니까? 나는 객체 지향 프로그래밍에 관한 책이 그것을 할 것이라고 상상한다. 그러나 그것이 지나치게 길 것 같은 느낌이 든다. 나는 뭔가 특별한 웹 프레임 워크를 찾고 있었다.웹 프레임 워크 프로그래밍 사고 방식
답변
Django로 다이빙을 시작하고 다른 것을 시도해도 상관이 없다면 WSGI 샷을 사용하면 third party engine을 사용하여 응용 프로그램을 직접 템플릿으로 만들 수 있습니다. 장고의 규칙에 정확히 따르지 않고 이것은 또한 요청 처리의 하위 레벨을 들여다 볼 수있게 해 주므로, Django가 무엇을하고 있는지 좀 더 잘 이해할 수 있습니다.
개요로 유용한 몇 가지 링크가 있습니다.
MVC 기반 웹 프레임 워크를 처음 사용했을 당시의 가장 큰 문제는 모델에있었습니다. SQL을 내 손가락에서 뽑아 내고 Object를 사용하게하는 것은 이상하게 느껴졌다. 일단 내가 SELECT 문 대신 객체로 내 데이터를 생각하기 시작하면 점점 쉬워진다.
장고 내 기본 규칙은 : 당신이 생각할 뷰 자체가 아닌 다른 곳에서 기능을 필요로 할 수 있다면, 그것은에 속하지 않는 보기 기능.
Django Pluggables에있는 수많은 앱을 다운로드하고 사용 방법을 확인하는 것이 좋습니다.
보기 기능에는 표시 도우미 또는 표시 논리 만 있어야합니다. 뷰 함수는 모델 자체에 액세스해서는 안되지만 모델 데이터의 매개 변수를 가져야합니다. 모델을보기와 분리하는 것이 중요합니다. 따라서 함수가 데이터베이스 또는 데이터베이스 객체에 대한 액세스를 처리하면 모델에 속합니다. 함수가 서식 표시를 처리하면 뷰에 속합니다.
일단 을 실행하면 좋은 가이드를 찾을 수 있습니다. 다음은 기억해야 할 사항입니다. 장고는 전문 용어로 약간 특별합니다. 모델, 템플리트 및보기에 "MTV"를 사용하고 (모델에 따라 URL Dispatcher를 언급 할 수도 있음), 모델,보기 및 컨트롤러에 대한 표준 세트는 "MVC"입니다.
모델은 Object/Relational Mapping (Django가하는)을 구현할 경우, 데이터 엔티티 모델 (종종 데이터베이스 테이블에 링크 된 모델)의 두 가지 의미에서 동일합니다.
하지만 나머지 두 용어는 혼동을 줄 수 있습니다. Django가 Views에 관해 이야기 할 때, '나머지 세계'는 컨트롤러에 대해 이야기합니다. 기본 아이디어는 이것이 프리젠 테이션 로직이 수행되는 곳이라는 것입니다. 계산이 계산되고 배열이 정렬되고 데이터가 검색됩니다. 장고의 URL 디스패처도 기존 컨트롤러 개념의 일부라고 말할 수 있습니다.
장고의 템플릿은 다른 위치의보기와 비교할 수 있습니다. 여기에 프리젠 테이션 만 있으면됩니다.Django가 매우 적은 수의 논리적 명령을 요구할 때, 다른 프레임 워크에서는 현재 HTML이나 루프, 분기 등의 프레젠테이션 논리 요소를 사용하지 않고 다른 작업을 수행하지 못하도록 권장합니다. 물건.
그래서, 요약하자면 : 는- 모델 : 데이터 처리
- 보기 (장고 템플릿) : 데이터는
- 컨트롤러 (장고보기) 객체 프리젠 테이션을
아, btw : Django 관련 가이드는 readin g The Django Book
은 정말 전에 분노에 장고를 사용하지 않는했지만, 레일 및 CakePHP의에 (그리고 확장에 의해, 어떤 MVC 웹 프레임 워크) 귀하의 방법을 조직에 Fat Model, Skinny Controller 접근 방법은 나를 위해 진짜 눈을 뜨게되었습니다.