Google App Engine의 프로젝트 구조

| | | | | | | | | | | | | | | | | | | |

오랫동안 생각했지만 시작하지 못했던 펫 프로젝트를 진행하고 기술을 가지고 놀기 위해 Google App Engine이 출시되자마자 애플리케이션을 시작했습니다. 결과는 BowlSK입니다. 그러나 그것이 성장하고 기능이 추가되면서 정리를 유지하는 것이 정말 어려워졌습니다. 주로 이것이 저의 첫 번째 Python 프로젝트이고 작업을 시작할 때까지 그것에 대해 아무것도 몰랐기 때문입니다.

내가 가지고 있는 것:

  • 메인 레벨은 다음을 포함합니다:
    • 모든 .py 파일(패키지를 작동시키는 방법을 몰랐음)
    • 기본 수준 페이지용 모든 .html 템플릿
  • 하위 디렉토리:
    • css, 이미지, js 등을 위한 별도의 폴더
    • 하위 디렉토리 유형 URL에 대한 .html 템플릿을 보유하는 폴더

예:
http://www.bowlsk.com/은 "index.html"의 템플릿인 홈페이지(기본 패키지)에 매핑됩니다.
http://www.bowlsk.com/games/view-series.html?series=7130 "games/view-series.html"에 있는 템플릿인 ViewSeriesPage(다시 기본 패키지)에 매핑됩니다.

매우 불쾌합니다. 어떻게 해야 하나요? 구조조정? 나는 2가지 아이디어를 가지고 있었습니다:

  • 기본 폴더 포함: appdef, indexes, main.py?

    • 코드용 하위 폴더. 이것이 내 첫 번째 패키지여야 합니까?
    • 템플릿의 하위 폴더입니다. 폴더 계층은 패키지 계층과 일치합니다.
    • css, 이미지, js 등의 개별 하위 폴더
  • appdef, indexes, main을 포함하는 기본 폴더 .py?

    • 코드 + 템플릿의 하위 폴더. 이렇게 하면 템플릿 바로 옆에 핸들러 클래스가 있습니다. 이 단계에서 많은 기능을 추가하기 때문에 하나를 수정하면 다른 하나를 수정하게 됩니다. 다시 말하지만, 이 폴더 이름이 첫 번째 패키지여야 합니까? 내 클래스의 이름은? 폴더를 "src"로 지정하고 싶지만 클래스를 "src.WhateverPage"로 지정하고 싶지는 않습니다.

모범 사례가 있습니까? Django 1.0이 곧 공개될 때 공식 GAE 템플릿 엔진이 되었을 때 Django 1.0과 통합하는 능력을 향상시키기 위해 지금 할 수 있는 일이 있습니까? 나는 단순히 이러한 것들을 시도하기 시작하고 어떤 것이 보이는지 확인하기만 하면 됩니다. 더 좋지만 pyDev의 리팩토링 지원은 패키지 이동을 잘 처리하지 못하는 것 같으므로 이 모든 것을 다시 작동시키는 것은 쉽지 않을 것입니다.