2012-04-29 2 views
0

3 ~ 4 부분의 사이트 (3 ~ 4 개의 HTML 템플릿)를 빌드 한 다음 GAE 파이썬에서 그 중 일부 또는 전부를 함께 렌더링 할 수 있습니까? 내가로드하고 하나의 특정 HTML 장고 템플릿을 렌더링 할 수 있지만 다른 파일에 사이트의 다른 부분에 대한 템플릿을 작성하고 다음 상황에 따라 함께 작성 싶어요.Google App Engine (Python) - 사이트 단편 - 복합보기

좋은 예는 대부분의 웹 응용 프로그램 페이지에서 동일한 메뉴, 머리글, 바닥 글을 원하지만 콘텐츠의 특정 부분을 전환하고 싶다는 것입니다. 그래서 하나의 파일과 템플릿을 가지고 거래하는 것은 클래스와 학생을 다루는 다른 클래스를 말합니다. 따라서 사이트의 일반적인 모양 (main.html)은 동일하지만 학생에 대한 정보를 표시하고 처리하는 방식으로 유지됩니다 또는 수업은 완전히 다릅니다. 나는 기본적으로 일반적인 HTML 템플릿에 페이지 특정 HTML을 심어 놓고 싶다. 감사합니다. :)

내가 찾고있는 것에 대한 정확한 기술 용어가 무엇인지 잘 모르겠습니다 (검색을 시도했습니다). 나는 Zend 프레임 워크에서 합성 뷰 또는 사이트 조각이라고 부릅니다.

답변

6

장고에서 템플릿 상속을 사용해야합니다. 시작하려면 this tutorial을보십시오.

편집 공식 Django Book section on Template Inheritance은 또한 어떻게 다른 '프래그먼트'가 어떻게 다른지를 보여줍니다. 바닥 글 또는 탐색 모음은 다른 템플릿 파일에 저장되어 포함 및 상속을 통해 통합 될 수 있습니다.

이 사이트 사이트 부 템플릿은 기본 레이아웃 템플릿을 연장하는 경우와 같이 하나의 템플릿이 또한 어떻게 월 템플릿 개재물을 사용하여 표시, 예를 들면, 코드, 서로

{% extends "base.html" %} 

을 상속 할 수있는 방법을 도시 예를 들어 퍼즐 조각과 같은 큰 템플릿에 다른 조각을 추가 할 수 있습니다. extends 더 컴팩트 복수 파일 단편의 사용이 불필요 할 수있다 : 예를 들어, 네비게이션 단편 @Nick 존슨 코멘트에 명시된 바와 같이 구

{% include "nav.html" %} 

함께 레이아웃 파일에 추가 될 수있다. extends이 실패하는 경우 최후의 수단으로 include 만 허용됩니다.

편집는 또한보십시오 "How to cut large HTML file into multiple HTML files"

+0

안녕에 대한 질문에 대한 내 대답은,이 위대하다! 그것은 정확하게 필요한 것이지만 한 번에 여러 개의 템플릿을 "확장"할 수있는 방법이 있습니까? – zehelvion

+0

예 @ 아서, 상속은 여러 단계를 거칠 수 있습니다. 예를 들어, 기본 사이트 레이아웃을'base.html' 파일에 넣는 것을 상상해보십시오. 그런 다음 기본 레이아웃을 확장 (상속)하는 두 섹션 템플리트, 즉'blog.html' 및'store.html'에서 사용자 정의 레이아웃을 작성합니다. 그리고 나서,'post.html'은'blog.html'을 확장하고'product.html'는'store.html' 등을 레벨의 수만큼 확장 할 수 있습니다. – gauden

+0

제가 의미하는 바는 다음과 같습니다 : => puzzle.html = piece1.html + piece2.html ... + ... piece3.html, 의미는 세 개의 템플릿을 가져 와서 "구멍" 메인 템플릿 – zehelvion