Ho avviato un'applicazione in Google App Engine proprio quando è uscita, per giocare con la tecnologia e lavorare su un progetto a cui pensavo da molto tempo ma che non sono mai riuscito a iniziare. Il risultato è BowlSK . Tuttavia, poiché è cresciuto e sono state aggiunte funzionalità, è diventato davvero difficile mantenere le cose organizzate, principalmente a causa del fatto che questo è il mio primo progetto Python e non ne sapevo nulla fino a quando non ho iniziato a lavorare.
Quello che ho:
- Il livello principale contiene:
- tutti i file .py (non sapevo come far funzionare i pacchetti)
- tutti i modelli .html per le pagine di livello principale
- sottodirectory:
- cartelle separate per css, immagini, js, ecc.
- cartelle che contengono modelli .html per gli URL di tipo sottodirectory
Esempio:
http://www.bowlsk.com/ mappa a HomePage (pacchetto predefinito), modello in "index.html"
http://www.bowlsk.com/games/view-series.html?series=7130 mappa a ViewSeriesPage (di nuovo, pacchetto predefinito), modello in "games / view-series.html"
È brutto. Come posso ristrutturare? Avevo 2 idee:
Cartella principale contenente: appdef, indexes, main.py?
- Sottocartella per il codice. Questo deve essere il mio primo pacchetto?
- Sottocartella per i modelli. La gerarchia delle cartelle corrisponderebbe alla gerarchia dei pacchetti
- Sottocartelle individuali per css, immagini, js, ecc.
Cartella principale contenente appdef, indexes, main.py?
- Sottocartella per codice + modelli. In questo modo ho la classe gestore proprio accanto al modello, perché in questa fase sto aggiungendo molte funzionalità, quindi le modifiche a una significano modifiche all'altra. Di nuovo, devo fare in modo che questo nome di cartella sia il primo nome del pacchetto per le mie classi? Vorrei che la cartella fosse "src", ma non voglio che le mie classi siano "src.W qualunquePage"
C'è una buona pratica? Con Django 1.0 all'orizzonte, c'è qualcosa che posso fare ora per migliorare la mia capacità di integrarmi con esso quando diventerà il motore di template GAE ufficiale? Vorrei semplicemente iniziare a provare queste cose e vedere quale sembra migliore, ma il supporto per il refactoring di pyDev non sembra gestire molto bene i movimenti dei pacchetti, quindi sarà probabilmente un compito non banale far funzionare tutto di nuovo.