2017-11-28 5 views
0

나는 장고를 처음 사용했습니다. 사람들이 템플릿을 설정하는 몇 가지 방법을 보았습니다. 길 아래로 문제가 생길 경우 적절한 방법을 생각해보고 싶습니다.적절한 템플릿 설정 Django?

내가 본 첫 번째 레이아웃은 여러 템플릿 폴더를 사용하는 것입니다. 루트 폴더에있는 주요 앱과 각 앱 디렉토리 아래에있는 앱입니다.

내가 본 다른 방법은 하나의 템플릿 폴더 만 사용하고 그 아래에 앱 이름과 일치하는 디렉토리 이름을 지정하는 것입니다. 의미가

희망. 그것을하기위한 올바른 방법에 대한 생각은 인정 될 것입니다.

+0

빌드하려는 대상에 따라 다르지만 현재 "표준 방식"은 'App'->'template folder'->'html templates'입니다. – hansTheFranz

+0

감사합니다. 한스. 그래서 제가 언급 한 첫 번째 방법을 의미한다고 생각합니까? –

+0

"표준"이 없습니다. 나는 그것을 두 가지 방법으로 사용하는 프로젝트를 보았습니다. 솔직히 선호도의 문제입니다. 모듈 관점에서 볼 때 각 앱 아래에'templates' 폴더가있는 것이 합리적입니다. 나 자신을 모듈화하는 것을 좋아하지만 루트 디렉토리에있는 같은'templates' 폴더 아래에 모든 템플릿을 갖는 것이 더 쉬운 방법이라고 생각합니다. – Nifled

답변

1

"적절한"방법은 논란의 여지가 있지만, 단 한 가지 방법은 제안한 방법을 결합하는 것입니다.

APP_DIRS은 (기본적으로 manage.py startproject 세트), 장고는 각 응용 프로그램의 templates/ 디렉토리 내부의 템플릿을 찾을 것이다 True로 설정되어있는 한, the tutorial에서 설명한 바와 같이

. 별도의 구성이 필요하지 않으며 app 디렉토리 내에 앱 템플리트를 유지하는 이점이 있습니다.

그러나 그것은 또한 앱 이름과 일치하는 하위 디렉토리 templates/ 내부에 템플릿을 넣어하는 것이 중요입니다 :

템플릿

이제 우리는 할 수있을 수도의 네임 템플릿을 polls/templates에 직접 두는 것 (다른 polls 하위 디렉토리를 만드는 것이 아니라) ould는 실제로 나쁜 생각 일 것입니다. Django는 이름이 일치하는 첫 번째 템플릿을 선택합니다. 응용 프로그램에 동일한 이름의 템플릿이있는 경우 Django는 이들을 구분할 수 없습니다. 우리는 Django가 올바른 것을 가리킬 수 있어야하며, 이것을 보장하는 가장 쉬운 방법은 의 이름 공간을으로 지정하는 것입니다. 즉, 해당 템플릿을 안에 넣으면 응용 프로그램 자체의 이름이 디렉토리가됩니다.

그래서 app_name 's의 템플릿에 대한 "적절한"위치가 될 수

  • project/
    • app_name/
      • templates/
        • 물론

, 당신이 원하는 경우에 당신이 사용자 정의 할 수 있습니다,하지만 여전히 템플릿을 네임 스페이스하는 것이 좋습니다.