2009-06-25 17 views
8

Così Ho un progetto Django ho appena creato chiamato 'coolprojectsite' la struttura delle directory assomiglia a qualcosa come segue:django layout di directory spiegazione

* media (dir) 
* mytemplates (dir) 
* * admin (dir) 
* * coolprojects (dir) 
* coolprojectsite (dir) 
* * coolproject (dir) 
* * * __init__.py 
* * * admin.py 
* * * models.py 
* * * tests.py 
* * * urls.py 
* * * views.py 
* * __init__.py 
* * settings.py 
* * urls.py 

quindi ho un paio di domande.

1) è coolprojectsite considerato il 'progetto'

2) è coolproject considerata la 'applicazione'

3) 'media' contiene il CSS, file JavaScript ecc è che il posto giusto per loro ? È al di fuori del progetto.

4) 'mytemplates' ha file specifici che contengono markup django (ad esempio {%%}) e sono accessibili perché il mio urls.py punta a loro. È corretto avere questi file al di fuori del progetto?

5) Se voglio includere un file javascript arbitrario (ad esempio jquery), creo una nuova voce in urls.py (se è così, dovrebbe essere quella in coolprojectsite o coolproject) e quindi collegare a quello url?

+0

Domanda. Non vorresti mettere il media/e il CSS ecc. Sopra il webroot e tutti gli altri? – tristanbailey

risposta

9
  1. "Progetto" non è davvero un concetto utile in Django. Il tutorial di Django lo menziona, ma gli sviluppatori hanno spesso menzionato sulle mailing list che desiderano non averlo introdotto. Fondamentalmente, un progetto è solo un contenitore per il tuo codice, ma in realtà il codice può vivere ovunque su Pythonpath.

  2. Sì, e puoi avere più applicazioni purché siano tutte aggiunte a INSTALLED_APPS in settings.py.

  3. Non importa dove vivono. Avrai bisogno di qualcosa per servirli - in fase di sviluppo, può essere fatto con il server integrato, ma in produzione dovrai puntare Apache (o qualsiasi altra cosa) direttamente ai file.

  4. Non importa. Sono le viste che caricano i modelli e ancora finché TEMPLATE_DIRS è impostato correttamente in settings.py va bene.

  5. No, assolutamente no. Come accennato, le risorse statiche vivono nella tua cartella multimediale e non vengono pubblicate tramite Django.

+6

Personalmente, trovo che "progetto" sia un concetto utile. I progetti sono ciò su cui generalmente lavoro, dopo tutto - questo è il deliverable. Quindi tengo la directory delle risorse statiche e la directory dei modelli in una directory con i file delle impostazioni, URLconf root, spesso alcune app specifiche per progetto, mettiamo tutto sotto controllo di versione e chiamiamo "il progetto". Non penso che ci sia qualcosa di sbagliato in questo. La cosa fondamentale è rendersi conto che non c'è nulla di "magico" in Django su una determinata directory, è possibile organizzare le cose più o meno adatta al tuo flusso di lavoro e farlo funzionare. –