.
오펠은 TAL로 작성된 템플릿에서 XHTML 페이지를 생성하는 파이썬 프로젝트, 조프 템플릿 언어 & NBSP을 가능 속성은 0으로 코드 반복을 줄이기 위해 설계되었습니다.
이 패키지는 오펠을 실행하는 WSGI 응용 프로그램뿐만 아니라 mod_python을, 아파치 웹 서버에 대한 파이썬 모듈에 대한 요청 처리기 모두 포함되어 있습니다.
아래에 인용 된 문서 파일은 doctest를 모듈의 번호와 함께, 패키지 디렉토리 안에서 발견 될 수있다.
엔트리 포인트
당신이 오펠을 설치하고 몇 가지 템플릿을 작성 후, 어떻게 당신은 웹 페이지를 렌더링 할 수 있습니까?
아파치와 오펠을 사용하여
파이썬 패키지는 mod_python을 아파치 모듈에 대한 요청 핸들러를 제공하는 모듈 ophelia.modpython가 포함되어 있습니다.
WSGI 응용 프로그램으로 오펠을 사용하여
오펠은 WSGI 표준을 준수하는 응용 프로그램 클래스를 정의, PEP 333 : ophelia.wsgi.Application. 당신은 오펠의 자신의 wsgiref 기반의 HTTP 서버를 실행하여 시도하거나 사용하기 위해 신경 수있는 WSGI 서버에서 실행할 수 있습니다.
오펠은 "wsgiref"여분의 활성화와 계란으로 설치되어있는 경우 wsgiref 기반 서버는 오펠 - wsgiref 실행 파일로 설치됩니다. 그 스크립트 진입 점 ophelia.wsgi.wsgiref_server입니다.
stdout에 한 페이지를 덤프
항상 오펠 달걀와 함께 설치되는 실행 파일은 오필리아 덤프입니다. 이 스크립트는 오펠 사용자가 지정한 경로에 해당하는 응답을 렌더링 있고, HTTP 헤더를 선택적으로 sys.stdout 그것을 인쇄합니다. 스크립트의 진입 점 ophelia.dump.dump입니다.
--help 옵션을 호출하면 두 스크립트는 일부 사용 지침을 제공합니다. 이들은 구성 파일을 판독; 자세한 내용은 CONFIGURATION.txt를 참조하십시오.
사이트의 어떤 종류의에 대한 오펠의 좋은?
정적 콘텐츠
약에 SSI로 오펠을 고려하십시오. 그냥 많이 친근하고 더 많은 능력, 근본적으로 다른 아니다.
당신은 기본적으로 한 번만 반복 물건을 쓸 필요로하는 것을 제외하고, 당신의 HTML 직접 작성 사이트 오펠을 사용합니다. 제로 반복을 줄이면 가격에 제공 : 오펠이 템플릿 올바른 방법으로 결합하는 사이트가 패턴을 따라야합니다.
계층 구조로 사이트의 레이아웃을 고려 모든 페이지에 공통의 모습이 거기에, 섹션 어떤 특성을 가지고 있고, 각 페이지는 고유 한 내용을 가지고있다. 이 계층은 문서의 파일 시스템 구성에 반영이 오펠에 매우 중요; 어떻게 템플릿을 결합 디렉토리의 계층 구조에서 자신의 위치에서 추론된다.
동적 콘텐츠
오펠은 동적 콘텐츠를 포함하여 사용할 수있는 파이썬 언어를 만든다. 각 템플릿 파일은 파이썬 스크립트를 포함 할 수있다. 파이썬 스크립트와 페이지 공유로 수정하고 사용하는 변수의 공통 기여 템플릿.
오펠의 내용 모델은 매우 간단하며 사용자가 게시 각 콘텐츠 객체가 자신의 볼 경우 가장 잘 작동합니다 : 그것은에 표시되는 페이지입니다. 어쨌든 외부 자원의 콘텐츠를 얻을 경우, 객체의 유형 또는 객체에 의존하지 않는 객체의 견해만큼도 콘텐츠 객체에 여러 전망 오펠을 사용하여 여전히 OK (데이터베이스 나 버전 관리 저장소 등)의 그 자체.
로직과 프리젠 테이션의 추한 얽힘으로 이어질 것보다 복잡한 사이트에 오펠을 사용하려고합니다. 실제로 응용 프로그램에 웹 인터페이스, 콘텐츠 관리 시스템 등을들 수있다 사이트에 오펠을 사용하지 마십시오.
어떻게 오펠 작동
템플릿 파일
각 요청에 대해, 오펠은 템플릿 파일의 수를 찾습니다. 그것은 하나의 페이지로 사이트 루트에서 경로의 각 디렉토리에서 "__init__"라는 이름의 파일 및 페이지 자체에 대한 최종 하나를합니다. 그 최종 템플릿이 발견되면 요청은 오펠에 의해 제공됩니다.
페이지를 구축 할 때, 페이지의 템플릿을 평가하고 그 내용이 내측 이른바 슬롯에 저장된다. 다시 루트 페이지에서 길에 각 템플릿은 다시 평가되고 내측 슬롯의 현재 내용을 포함 할 수있다. 결과는 각각의 단계 이후에 슬롯 내부에 저장된다.
루트 템플릿의 처리 결과 페이지로서 제공된다.
파이썬 스크립트
각 템플릿 파일은 파이썬 스크립트를 시작할 수 있습니다. 이 경우, 스크립트 (공백을 제외하고 왼쪽 또는 오른쪽) 자신의 라인에 " XML?>"태그의 첫 번째 발생하여 템플릿에서 분리된다. 템플릿 파일이 있지만 실제로 템플릿 만 파이썬 스크립트가 포함되어있는 경우, 그 마지막 줄에 " XML?>"했습니다.
페이지로 사이트 루트에서 순회하면서 파이썬 스크립트는 순서대로 실행됩니다. 그들은 나중에 템플릿의 평가 문맥으로 사용되는 변수의 같은 공간에서 실행됩니다. 파이썬 스크립트에 의해 설정되는 변수는 나중에 실행되는 스크립트에 의해뿐만 아니라 템플릿에 사용 TALES 식으로 사용하고 수정할 수 있습니다.
네임 스페이스는 요청 객체를 참조하는 하나의 변수, __request__와 오펠에 의해 초기화됩니다. 따라서, 스크립트 요청 세부 사항 및 순회 내부에 액세스 할 수 있습니다. 설정 변수 이외에, 스크립트는 또한 모듈 임포트 기능을 정의하고, 파일 시스템을 액세스하고, 일반적 파이썬 프로그램 할 수있는 일을 할 수있다.
어떻게 오펠의 동작
URL 정규화 및 재 지정
오펠은 그것의 기본 구성에서 아파치와 유사하게 작동 디렉토리에 해당하는 URL가 발생하는 경우 : URL이 슬래시로 끝나지 않는 경우를,이 슬래시를 추가 할 수있는 브라우저를 리디렉션합니다. 슬래시가있는 경우, 그것은 기본적으로 index.html을 명명 된 템플릿을 발견하려고 노력하고 디렉토리 "인덱스"로 렌더링됩니다.
구성에 따라, 디렉토리 인덱스 페이지에 대한 명시 적 요청은 최종 경로 세그먼트없이 디렉토리 URL을 베어 리디렉션 될 수 있습니다. 이에
또한, 오펠 경로 세그먼트를 포함하는 URL을 정규화하고 "." 및 ".."경로 끝에 비어없는 경로 세그먼트를 일반적인 URI 구문에 RFC 3986에 따르면, 및 제거한다. URL은이 규칙에 의해 변경되는 경우, 그에 따라 펠 브라우저를 리디렉션.
mod_python을 핸들러
아파치는 mod_python을 같은 모듈들에 의해 처리 될 수있는 각각의 단계에서 요청을 처리한다. 오펠은 콘텐츠 생성 단계에 대한 mod_python의 핸들러를 제공합니다. 요청 된 URL이 펠에 의해 처리되도록 구성되는 경우, 핸들러는 파일 시스템에 적합한 템플릿을 찾고, 그들로부터 페이지를 구축하기 위해 시도한다.
오펠의 mod_python을 핸들러는 HTTP 오류를 찾을 수 없습니다 파일이 발생하지 않습니다. 그것이 특정 자원을 구축 할 수없는 찾으면 대신 다시 아파치와 다른 모듈에 제어를 전달한다. 아파치는이 경우 디스크에서 정적 콘텐츠를 제공으로 다시 떨어진다. 오펠 따라서 템플릿 템플릿 디렉토리에 존재하는 바로 그 요청을 처리 할 수있는 정적 인 사이트의 상단에 설치 될 수 있습니다
이 요구 사항 : 있습니다.
파이썬
댓글을 찾을 수 없습니다