2012-06-26 14 views
23

Chciałbym wdrożyć prostą usługę kolejkowania specyficzną dla projektu. Gdzie powinien się znaleźć kod w strukturze katalogów Django?Struktura katalogów Django?

Obecnie struktura jest:

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

[edytuj] Pytam gdzie umieścić kod serwisowy kolejka I utworzony w strukturze direcotry powyżej. Czy powinienem utworzyć nowy katalog?

+0

możliwe duplikat http: // stackoverflow. com/questions/2282034/web-applica typ-django-typowy-folder-projektu-struktura –

+0

Czy pytasz, gdzie umieścić ten folder 'sound' app? – jdi

Odpowiedz

61

wspólne struktury

W 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 

W Django 1.3 i przed

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 

Alternatywne podejście

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

Gdzie chcesz dodać szablony? – starsinmypockets

+1

@starsinmypockets na app można dodać domyślne szablony, prawdopodobnie bez zbytniego stylu. Na poziomie projektu nadpisujesz je, zaktualizowałem przykład szablonami. –

+0

dlaczego przesłonić szablony na poziomie projektu? –

1

Jeśli potrzebujesz użyć bazy danych, powinieneś dodać modele danych do modelu .s.py. W przypadku Twojego programu zalecam jego zapisanie w nowych plikach Pythona (np. Queuing.py), które zaimportujesz, kiedy i gdzie chcesz go użyć. Można również utworzyć kolejną aplikację django.

+1

_Możesz także utworzyć kolejną aplikację django. To nie jest dobra rekomendacja. Kod usługi powinien być oddzielony od MVC. Zwykle nie jest to kolejna aplikacja. –

Powiązane problemy