Ich habe eine Anwendung in Google App Engine gestartet, als sie herauskam, um mit der Technologie zu spielen und an einem Haustierprojekt zu arbeiten, über das ich lange nachgedacht hatte, das ich aber nie gestartet habe. Das Ergebnis ist BowlSK . Da es jedoch gewachsen ist und Funktionen hinzugefügt wurden, ist es wirklich schwierig geworden, die Dinge organisiert zu halten - hauptsächlich aufgrund der Tatsache, dass dies mein erstes Python-Projekt ist und ich nichts davon wusste, bis ich anfing zu arbeiten.
Was ich habe:
- Hauptebene enthält:
- alle .py-Dateien (wusste nicht, wie Pakete funktionieren)
- Alle HTML-Vorlagen für Seiten der Hauptebene
- Unterverzeichnisse:
- separate Ordner für CSS, Bilder, JS usw.
- Ordner mit HTML-Vorlagen für URLs vom Typ Unterverzeichnis
Beispiel:
http://www.bowlsk.com/ wird HomePage (Standardpaket) zugeordnet, Vorlage unter "index.html"
http://www.bowlsk.com/games/view-series.html?series=7130 wird zugeordnet ViewSeriesPage (wieder Standardpaket), Vorlage unter "games / view-series.html"
Es ist fies. Wie restrukturiere ich? 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 Ordner-Hierarchie würde der Paket-Hierarchie entsprechen
- Einzelne 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, sodass Änderungen an einer Funktion Änderungen an der anderen bedeuten. Muss dieser Ordnername der erste Paketname für meine Klassen sein? Ich möchte, dass der Ordner "src" ist, aber ich möchte nicht, dass meine Klassen "src.WhateverPage" sind.
Gibt es eine bewährte Methode? Kann ich mit Django 1.0 am Horizont jetzt etwas tun, um meine Integrationsfähigkeit zu verbessern, wenn es zur offiziellen GAE-Template-Engine wird? Ich würde einfach anfangen, diese Dinge auszuprobieren und zu sehen, was besser erscheint, aber die Refactoring-Unterstützung von pyDev scheint Paketbewegungen nicht sehr gut zu handhaben, so dass es wahrscheinlich eine nicht triviale Aufgabe sein wird, all dies wieder zum Laufen zu bringen.