Sto pianificando un nuovo progetto Django e voglio ottenere tutto giusto e cose del genere. Mi sono imbattuto nella domanda su come organizzare il layout della directory del progetto. Fortunatamente, ci sono alcuni esempi di buoni modelli di progetto disponibili sul web. Tuttavia, c'è una cosa che faccio fatica a mettermi in testa:Posizioni di modelli e file statici in Django
È il modo consigliato di mettere i file modello in una directory separata sotto la radice del progetto che è divisa in sottodirectory per app. Pertanto, i modelli non si trovano all'interno delle directory dell'app. Ciò mi sembra logico dal momento che vogliamo separare la logica dell'applicazione dalla logica di rappresentazione. Ma per quanto riguarda i file statici? Qui, la pratica comune sembra essere quella di localizzare i file statici all'interno delle directory dell'app e caricarli in una directory 'statica' sotto la radice del progetto in fase di sviluppo (collectstatic). E questa logica non capisco. Poiché i file statici (ad es. Js, css, images) sono generalmente accessibili nei modelli, non all'interno del codice dell'applicazione, li conterei per la logica di presentazione. Allora perché non sono memorizzati proprio come i modelli: una directory sotto la root del progetto, con sottodirectory per le singole app?
So che posso archiviare questi file dove voglio ma immagino ci possa essere una buona ragione per cui la gente lo fa in questo modo. Quale potrebbe essere questa ragione?
Vedo che l'organizzazione di modelli e file statici all'interno delle directory dell'app ha senso per le app collegabili. Ma non c'è alcun vantaggio se non ho intenzione di creare app collegabili, non è vero? Avrei semplicemente il sovraccarico di chiamare "collectstatic" ogni volta che distribuisco una nuova versione del mio progetto. – j0ker
@ J0ker, che è discutibile ed è completamente la tua chiamata. A volte, se si tratta di un'app discretamente impacchettata, mi trovo a utilizzare 'app/static'. Altre volte, per un gruppo di app tutte relative al sito web principale, utilizzo semplicemente la cartella 'site_media'. L'overhead di chiamare "collectstatic" viene rimosso per me poiché utilizzo uno script di fabric che lo usa comunque. PLUS <è estremamente utile che se si configura un back-end di storage staticfiles, è possibile caricare collectstatic su amazon S3. –