.
눈사태의 webapp2 & NBSP 상단에 내장 파이썬 웹 프레임 워크, 그것은 기본 템플릿 시스템으로 Jinja2를 사용하고 영속 계층을 포함하지 않습니다.
눈사태 목표 (또는 왜 다른 웹 프레임 워크?)
테스트 용이성과 재사용에 눈사태 디자인 중점을두고 있습니다.
물론 눈사태 기적을하지 않습니다. 궁극적으로 응용 프로그램 코드에 따라 달라집니다 것입니다 테스트 용이성과 재사용. 하지만 프레임 워크는 오른쪽 경로를 설정하는 방법에 큰 역할을한다.
목표는 희망 디자인을 읽은 후, 아래에 제시하고 이러한 목표를 달성하는 방법을 당신에 대하여 명확하게 알 수있을 것이다 튜토리얼된다.
테스트 용이성
눈사태는 그것이 (당신을 위해 쉽게) 가능한 코드에 대한 좋은 단위 테스트를 작성 할 수있는 방식으로 설계되었습니다. 즉, 만 테스트를 작성하기 쉽게 만드는되지 않습니다. 단위 테스트해야한다 :
-이를 실패 할 경우 명확한 오류 메시지를
- 테스트중인 기능이 깨진하지 않을 경우 모든 코드 변경에 만 실패
- 빨리
재사용
대부분 모든 프레임 워크는 재사용이 자신의 설계 목표 중 하나라고 주장한다. 여기에 "재사용"는 소스 코드 재사용 성을 의미한다.
당신이 수정 / 구성해야 할 경우 재사용이 응용 프로그램의 소스 코드에 항상 쉽지 않다 그러나 많은 프레임 워크, 플러그 / 재사용 하위 응용 프로그램에 대한 몇 가지 메커니즘을 제공합니다. , 플러그 응용 프로그램은 매우 중요한 기능입니다하지만 현재로서는 눈사태는 대한 지원이 없습니다.
그것은 단지 코드가 당신이 그것을 쓰기 처음에 재사용해야한다, 재사용 가능한 코드를 작성하는 것이 가능하지 않을 것이다. 당신은 한 가지 방식으로 코드를 작성하는 것이 좋다, 나중에보다가 다시 사용할 수 있도록 수정해야 할 수 없습니다. 즉, 그것은 "보기 (핸들러) 기능을 사용하여"말에 반대한다. 그리고보다 ... "당신이 당신의 의견은 재사용되도록하려면 클래스 뷰를 기반으로 변환!".
프로젝트 세부 사항
- 웹 사이트 / 문서
-이 파이썬으로 작성된 오픈 소스 프로젝트 (MIT 라이센스)입니다.
- PyPi에서 다운로드
-의 bitbucket에 프로젝트 관리 (버그 추적, 기능 요청 및 소스 코드).
- 구글 그룹에 대한 질문 및 의견.
눈사태 디자인
경고
눈사태 개발 (알파)의 초기 단계에 있습니다. API는 향후 변경 될 수 있습니다과 호환성을 유지한다는 보장은 없습니다.
인 MVC (Model-View-Controller) 이상
MVC는 사용자 인터페이스에서 "도메인 로직"를 분리하는 목적으로 작성된 소프트웨어 아키텍처 패턴이다. 우려의 이러한 분리는 더 나은 응용 프로그램 코드의 생성을 가능하게한다. 이 패턴은 많은 데스크탑 프레임 워크에 대한 매우 성공적이었고, 그래서 웹 프레임 워크의 창조에 대한 참조 역임했다. 문제는이 아키텍처 방식 웹 애플리케이션 작업에 직접 맵핑 될 수 없다는 것이다.
심지어 소위 MVC 프레임 워크는 정말 MVC 수 없습니다. 그래서 그냥 MVC의 목표를 유지 할 수 있습니다. 즉, 깨끗한 재사용 및 테스트 가능한 코드를 작성하는 것입니다.
웹 응용 프로그램
본질적하는 모든 웹 애플리케이션, HTTP 요청을 수신하고 그것을 프로세싱 HTTP 응답을 생성하는 것이다.
& NBSP; + ------------------ +
HTTP 요청 ------> | 웹 응용 프로그램 + -----> HTTP 응답
& NBSP; + ------------------ +
송신 및 수신 HTTP는 웹 서버에 의해 처리됩니다. 의 웹 응용 프로그램이하는 일에 대해 자세히 살펴 보자
& NBSP; + ------ + + ------- +
HTTP 요청 ----> | 라우터 | -----> | 핸들러 | ----> HTTP 응답
& NBSP; + ------ + + ------- +
라우터는 요청의 URL을 확인하고이 응답을 생성하는 요청 핸들러에 전달한다. 눈사태는 webapp2 라우터를 사용합니다.
요청 핸들러 스타일
요청 처리기의 3 스타일은 주로이 있습니다.
- 하나의 함수
- 클래스 메소드
- 클래스
눈사태 (그리고 webapp2)는 제 3 호 양식, 클래스를 사용합니다. 그것은 더 큰 유연성을 제공하기 때문에 의뢰처보다 잘 맞는 목표로 클래스를 사용하여 쉽게 수정 / 연장 부 핸들러를 재사용한다.
요청 핸들러 처리
의뢰처 처리는 3 단계로 분할 될 수있다 :
& NBSP; + ----------------- + + ----------------- + + --------- - +
요청 ----> | PARAM 계산기 | ---- PARAM 개체 ----> | 컨텍스트 빌더 | --- 컨텍스트 -----> | 렌더러 | ----> 응답
& NBSP; + ----------------- + + ----------------- + + --------- - +
1. PARAM 컨버터 - HTTP 요청에서 매개 변수를 가져
& NBSP; HTTP가 텍스트 프로토콜, 응용 프로그램이 일반적으로 요청에서 몇 가지 매개 변수를 가져 일부 기본 데이터 유형으로 문자열 값을 변환합니다. 이러한 매개 변수는 URI 경로 등 URI 쿼리 후 데이터, 쿠키,에서 촬영
2. 상황에 맞는 빌더 - 가공
& NBSP; 콘텍스트 렌더러가 사용할 데이터를 나타내는 데 사용되는 용어이다.
& NBSP,이 처리는 애플리케이션 로직이다. 그것은 종종 영속 계층 (때로는 모델이라고합니다)에 액세스하지만이 응용 프로그램 코드에 전적으로하고 프레임 워크가 아무런 역할을하지 않는다.
& NBSP, 웹 페이지는 종종 너무 때로는 하나 이상의 "콘텍스트 빌더"로 작업을 분할하는 것이 합리적 여러 요소들로 구성된다.
3. 렌더러 - 출력을 생성
& NBSP, 렌더러는 HTTP 응답을 텍스트로 처리 결과를 변환한다. 응답은 HTTP 리디렉션 경우이 단계는 생략 될 수 있습니다. 렌더러는 일반적으로 HTML 코드를 생성하거나 JSON으로 데이터를 변환 템플릿 시스템을 사용할 것이다.
눈사태에 별도로 핸들러의 3 단계에 대한 코드를 작성하고 프레임 워크가 서로 다른 부분을 접착제하도록해야합니다.
그것이 어떻게 보이는지 확인하기 위해 튜토리얼로 이동
이 요구 사항 : 있습니다.
파이썬
댓글을 찾을 수 없습니다