2012-06-26 29 views
23

Me gustaría implementar un servicio de cola simple específico para un proyecto. ¿A dónde debe ir el código en la estructura de directorios de Django?Estructura de directorio de Django?

Actualmente la estructura es:

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

[editar] Me pregunto dónde colocar el código de servicio de colas que he creado dentro de la estructura direcotry anteriormente. ¿Debo crear un nuevo directorio?

+0

posible duplicado de http: // stackoverflow. com/questions/2282034/web-applica tion-django-typical-project-folder-structure –

+0

¿Estás preguntando dónde colocar esta carpeta de la aplicación 'sound'? – jdi

Respuesta

61

estructuras comunes

En 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 

En Django 1.3 y antes

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 

enfoque 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

¿Dónde agregarías las plantillas? – starsinmypockets

+1

@starsinmypockets por aplicación, puede agregar sus plantillas predeterminadas, probablemente sin demasiado estilo. A nivel de proyecto, los reemplazas, he actualizado el ejemplo con plantillas. –

+0

¿por qué anular las plantillas a nivel de proyecto? –

1

Si necesita utilizar la base de datos, debe agregar los modelos de datos a models.py. Para su programa, recomiendo escribirlo en nuevos archivos de Python (por ejemplo, queuing.py) que importaría cuando y donde quiera usarlo. Puede crear otra aplicación django solo para esto también.

+1

_Podía crear otra aplicación django solo para esto también. Esa no es una buena recomendación. El código de servicio debe estar separado de MVC. En general, simplemente no es otra aplicación. –

Cuestiones relacionadas