2012-06-26 24 views
23

Vorrei implementare un semplice servizio di accodamento specifico per un progetto. Dove dovrebbe entrare il codice nella struttura della directory di Django?Struttura della directory di Django?

Attualmente la struttura è:

sound/ 
    __init__.py 
    models.py 
    tests.py 
    views.py 
    static 

[modifica] Mi chiedo dove posizionare il codice di servizio di coda ho creato all'interno della struttura direcotry sopra. Devo creare una nuova directory?

+0

possibile duplicato di http: // StackOverflow. com/domande/2282034/web-appli tion-django-tipico-project-folder-structure –

+0

Stai chiedendo dove posizionare questa cartella di app 'audio'? – jdi

risposta

61

strutture comuni

In Django 1.4+

project_root/ 
    project_name/ 
     media/ 
     static/ 
      some_app/css/app.css # overriding an app css file from project level 
      css/ 
       project.css 
     static_root/ # in production using the collectstatic command 
     templates/some_app/foo.html # overriding some_app at project level 
       /admin/some_app/some_model/change_list.html 
       # overriding admin changelist for some_app.models.some_model 
     settings/ 
      __init__.py 
      base.py # settings common to all instances of the project 
      dev.py 
      staging.py 
      test.py 
      prod.py 
     urls.py 
    some_app/ 
     static/ 
      css/ 
       app.css 
     templates/some_app/foo.html 
     urls.py 
     views.py 
     models.py 
    manage.py 

In Django 1.3 e prima

project_root/ 
    some_app/ 
     templates/some_app/foo.html 
     static/ 
      css/ 
       app.css 
     urls.py 
     views.py 
     models.py 
    media/ 
    static/ 
     some_app/ 
      css/ 
       app.css # overriding an app css file from project level 
     css/ 
      project.css 
    static_root/ (in production) 
    templates/some_app/foo.html # overriding some_app at project level 
      /admin/some_app/some_model/change_list.html 
      # overriding admin changelist for some_app.models.some_model 
    settings/ 
     __init__.py 
     base.py # settings common to all instances of the project 
     dev.py 
     staging.py 
     test.py 
     prod.py 
    urls.py 
    manage.py 

approccio alternativo

project_root/ 
    .gitignore 
    README.md 
    docs/ 
    venv/ 
    src/ 
     main/ 
      media/ 
      static/ 
       some_app/css/app.css # overriding an app css file from project level 
       css/ 
        project.css 
      static_root/ # in production using the collectstatic command 
      templates/some_app/foo.html # overriding some_app at project level 
        /admin/some_app/some_model/change_list.html 
        # overriding admin changelist for some_app.models.some_model 
      settings/ 
       __init__.py 
       base.py 
       dev.py 
       staging.py 
       test.py 
       prod.py 
      urls.py 
     some_app/ 
      static/ 
       css/ 
        app.css 
      templates/some_app/foo.html 
      urls.py 
      views.py 
      models.py 
     manage.py 
     wsgi.py 
+1

Dove aggiungerei modelli? – starsinmypockets

+1

@starsinmypockets per app è possibile aggiungere i modelli predefiniti, probabilmente senza troppo stile. A livello di progetto la tua override di questi, ho aggiornato l'esempio con i modelli. –

+0

perché sostituire i modelli a livello di progetto? –

1

Se è necessario utilizzare il database, è necessario aggiungere i modelli di dati a models.py. Per il tuo programma ti consiglio di scriverlo in nuovi file python (ad es. Queuing.py) che vuoi importare quando e dove vuoi utilizzarlo. Potresti creare un'altra app django anche per questo.

+1

_Potrebbe anche creare un'altra app django solo per questo. Questa non è una buona raccomandazione. Il codice del servizio deve essere separato da MVC. In generale, non è solo un'altra app. –

Problemi correlati