2012-06-26 136 views
23

我想实现一个特定于项目的简单排队服务。代码应该在Django目录结构中进入哪里?Django目录结构?

目前的结构是:

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

[编辑]我问在哪里放置我的direcotry结构中创建上面的队列服务代码。我应该创建一个新目录吗?

+0

HTTP的可能重复://计算器。 COM /问题/ 2282034/WEB-APPLICA tion-django-typical-project-folder-structure –

+0

你问这个'声音'应用程序文件夹放在哪里? – jdi

回答

61

普通结构

在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 

在Django中1.3和现有

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 

替代做法

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

你会在哪里添加模板? – starsinmypockets

+1

@starsinmypockets每个应用程序,您可以添加您的默认模板,可能没有太多的样式。在项目级别,你重写了这些,我已经用模板更新了这个例子。 –

+0

为什么在项目级别覆盖模板? –

1

如果您需要使用数据库,则应将数据模型添加到models.py。对于您的程序,我建议您将它写入新的python文件(例如queuing.py),以便您在何时何地使用它。 你也可以为此创建另一个django应用程序。

+1

_你也可以为此创建另一个django应用._这不是一个好建议。服务代码应该与MVC分开。一般来说,这不是另一个应用程序。 –