在Django版本1.4
中,结构发生了变化,manage.py
走到了顶层。
使用django webiste中的教程,项目的名称是mysite,结构如下:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
我想创建一个应用程序。在教程中,它将应用程序放在manage.py旁边,因此应用程序也位于顶层,就像这样:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
polls/
__init__.py
models.py
tests.py
views.py
这样:
如果我在secend级别创建应用程序(在settings.py旁边)会有什么不同?
如果我在顶层创建应用,并且有一些静态文件,mysite
和polls
都应该使用,那么放置{{1}的位置目录?
答案 0 :(得分:2)
Django改变了项目布局,以结束myproject.myapp.something
进口的可怕时代。如果您的代码库周围分散了这些类型的导入,则无法移动任何内容或在其他项目中重复使用该应用程序。新的布局(与项目处于同一级别的应用程序)使得导入应用程序相对而非项目相对,大大简化了事情。
您的代码的根目录中唯一应该包含的是您的应用程序目录,项目目录和manage.py。项目范围内的任何内容(设置,模板,静态文件等都应该放在项目目录中。
尽管如此,STATIC_ROOT
应指向myproject/static
,但您不应手动创建该目录,也不应手动将任何内容放入其中。绑定到特定应用程序的静态文件应该放在该应用程序的static
目录中。任何项目范围的静态文件都应该位于完全不同的目录中(与STATIC_ROOT
或MEDIA_ROOT
不同)。然后将该目录添加到STATICFILES_DIRS
,以便Django将其包含在开发中以及运行collectstatic
管理命令时。
答案 1 :(得分:1)
您可以使用模板启动项目,如下所示:
https://github.com/goinnn/django-base-template
在这些模板中,已经定义了应用程序的位置