Projektstruktur für Google App Engine

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

Ich habe direkt nach der Veröffentlichung eine Anwendung in Google App Engine gestartet, um mit der Technologie zu spielen und an einem Lieblingsprojekt zu arbeiten, über das ich schon lange nachgedacht hatte, aber nie dazu kam, es zu starten. Das Ergebnis ist BowlSK. Als es jedoch gewachsen ist und Funktionen hinzugefügt wurden, wurde es wirklich schwierig, die Dinge zu organisieren - hauptsächlich aufgrund der Tatsache, dass dies mein erstes Python-Projekt ist und ich nichts darüber wusste, bis ich anfing zu arbeiten.

Was ich habe:

  • Hauptebene enthält:
    • alle .py-Dateien (wusste nicht, wie man Pakete zum Laufen bringt)
    • alle .html-Vorlagen für Seiten auf Hauptebene
  • Unterverzeichnisse:
    • separate Ordner für css, Bilder, js usw.
    • Ordner, die HTML-Vorlagen für URLs vom Typ Unterverzeichnis enthalten

Beispiel:
http://www.bowlsk.com/ wird der Homepage zugeordnet (Standardpaket), Vorlage unter "index.html"
http://www.bowlsk.com/games/view-series.html?series=7130 Zuordnungen zu ViewSeriesPage (wieder Standardpaket), Vorlage bei "games/view-series.html"

Es ist böse. Wie mache ich das umstrukturieren? Ich hatte 2 Ideen:

  • Hauptordner mit: appdef, indexes, main.py?

    • Unterordner für Code. Muss dies mein erstes Paket sein?
    • Unterordner für Vorlagen. Die Ordnerhierarchie würde der Pakethierarchie entsprechen
    • Individuelle Unterordner für CSS, Bilder, JS usw.
  • Hauptordner mit appdef, indexes, main .py?

    • Unterordner für Code + Vorlagen. Auf diese Weise habe ich die Handler-Klasse direkt neben der Vorlage, da ich in dieser Phase viele Funktionen hinzufüge, Änderungen an einem bedeuten also Änderungen am anderen. Auch hier muss dieser Ordnername das erste Paket sein Name für meine Klassen? Ich möchte, dass der Ordner „src“ ist, aber ich möchte nicht, dass meine Klassen „src.WhateverPage“ sind

Gibt es eine bewährte Vorgehensweise?Gibt es mit Django 1.0 am Horizont etwas, was ich jetzt tun kann, um meine Fähigkeit zur Integration damit zu verbessern, wenn es die offizielle GAE-Templating-Engine wird?Ich würde einfach anfangen, diese Dinge auszuprobieren und zu sehen, was scheint besser, aber die Refactoring-Unterstützung von pyDev scheint Paketverschiebungen nicht sehr gut zu handhaben, daher wird es wahrscheinlich eine nicht triviale Aufgabe sein, all dies wieder zum Laufen zu bringen.