2017-02-11 2 views
0

나는 특별히 Django와 Jinja2를 사용하고 있습니다. 이것은 CMS를 사용하지 않고 템플릿을 사용하여 어떤 템플릿을 선택하고 모두 함께 사용할지에 대한 첫 번째 시도입니다.DTL과 Jinja와 같은 템플릿 언어/엔진은 다양한 템플릿 파일 간의 관계를 어떻게 표현하고 관리합니까?

어떤 이유로 나는 조각들이 얼마나 잘 어울리는 지 알 수 없습니다.

나는이 개념을 편안 :

  • 템플릿 엔진은 템플릿과 유용한 결과를 생성 할 수있는 모델을 처리합니다.
  • 템플릿 파일은 그 결과를 생성하기 위해 모델 데이터를 모델 파일에 끼워 넣는 방법을 설명합니다.
  • 응용 프로그램 개발자는 템플릿 파일을 나타내는 엔진 및 템플릿 개체와 프로그래밍 방식으로 상호 작용합니다. 프로그래머는 템플릿 파일을 선택하고, 데이터를 제공하고, 엔진에 모든 데이터를 전달합니다. 그리고 엔진이 돌려주는 유용한 결과로 무언가를하십시오.

하지만 내가 고민하고있어 이것이다 :

  • 템플릿 파일 DRY 홍보, 서로 상속 쓸 수 있습니다.
  • 템플릿 파일에는 상속에 대한 정보가 들어 있습니다.

이제 나는 넘어진다.

  1. 어떻게 작동합니까? 시스템에서이 관계는 어디에 사용됩니까?
  2. 기본 템플릿을 엔진에 전달하는 경우 엔진에서 사용할 자식 템플릿을 어떻게 알 수 있습니까?
  3. 엔진에 자식 템플릿을 전달할 경우 해당 템플릿에 확장 된 템플릿에 대한 정보가 포함되어 있지만 부모 템플릿에 하나 이상의 자식 템플릿이 필요한 경우 어떻게해야합니까?

내가 잘못 이해하고 큰 그림을 이해하고 있습니다. 아마도 어떤 책임이 템플릿에 속하고 어떤 것이 응용 프로그램에 속하는 것인지 이해하지 못하고 있습니까?

대단히 감사합니다.

편집 :

내가 작동하지 않았다 내 문제를 분명히 말하는 나의 첫 번째 시도를 같아요. 여기에 또 다른 기회입니다 :

Some templates

그림 1 일부 템플릿 내가 가진 (가설)를 보여줍니다. 기본 템플릿, 헤더 템플릿, body, sidebar 및 footer 템플릿 각각 2 개가 있습니다.

상속의 나무가 있습니다. 각 템플리트는 확장 가능한 템플리트를 (가능하면 내 이해에서) 지정합니다.

그리고 여기에 문제가 있습니다. 본문 및 바닥 글 템플릿 만 고려하십시오. 그들은 기지를 확장합니다. 하지만 내 이해, 난 단지 렌더링 중 하나를 선택할 수 있습니다. 내가 시체 중 하나를 선택하면 내가 원하는 바닥 글을 선택할 수 없습니다.바닥 글 중 하나를 선택하면 내가 원하는 몸을 선택할 수 없습니다. 본문과 바닥 글을 모두 선택할 수 있기를 원한다면, 필자는 각 조합마다 하나씩 4 개의 템플릿을 작성해야합니다. 확실히 이것은 어떻게 작동 할 수 있습니까?

다음 우리는 사이드 바를 가지고 있습니다. 내가 앞뒤로 가서 네 가지 템플릿을 만들었다 고 가정하십시오. 그렇다면 네 개의 사이드 바를 연장해야하는 것은 어느 것입니까? 4 개의 레이아웃 모두에 사이드 바를 둘 수있게하려면 8 개의 템플릿을 만들어야합니다! 그림 2는 다양한 조합을 보여줍니다.

실제 프로젝트 (내가 작업하고있는 것과 같은 개인 프로젝트뿐만 아니라)에서 처리해야 할 것 이상의 것들을 기대합니다. 이미 설명 된 다른 레이아웃 외에도, 사이드 바에 다른 블록이 필요하고, 사용자가 로그인했는지 여부에 따라 다른 레이아웃이 필요합니다. 모든 종류의 것들. 모든 가능성을 다루기 위해 수백 가지 템플릿을 작성해야한다는 것을 쉽게 상상할 수 있습니다.

이것이 실제로 템플릿 시스템이 작동하는 방법이라면 어떻게 대신 사용해야합니까?

답변

0

그러나 이러한 워크 플로는 지원되지 않습니다. 이해할 수있는 유일한 경우는 부모를 확장 한 자식과 자식이 템플릿 엔진에 보내지는 것입니다.

모든 템플릿은 다른 템플릿을 직접 포함 할 수도 있지만 상속 체인의 일부는 아닙니다.

+0

아, 체인. 그래서 분명히 템플릿 트리를 사용하여 페이지를 만들 수 없습니까? 템플릿에 트리 구조를 지정할 수 있다고 가정했습니다. 트리 구조를 원한다면 애플리케이션의 뷰 로직을 구축해야합니까? – MadEmperorYuri

관련 문제