我在 settings.py
中有这个选项的 Django 1.3 项目SITE_ROOT = os.path.dirname(os.path.realpath( __ file __ ))
STATIC_ROOT = os.path.join(SITE_ROOT,'static')
MEDIA_ROOT = os.path.join(SITE_ROOT,'media')
TEMPLATE_DIRS =( os.path.join(SITE_ROOT,'templates'),)
但是 Django 1.4 默认情况下 settings.py 会移动到名称等于项目名称的子目录中。由于静态,媒体和模板目录现在必须在同一子目录中移动?
这是我必须做的,还是只更改STATIC_ROOT,MEDIA_ROOT和TEMPLATE_DIRS选项?
我知道两种变体都可以,但是在Django 1.4中最好的做法是什么?
而且我也知道每个应用都可以拥有自己的模板和静态目录。
将所有其他应用程序目录放在同一子目录中是否更好?这不是默认情况下使用manage.py startapp
发生的情况答案 0 :(得分:7)
好的,我遵循的方案是:
myproject/requirements.txt
- pip可安装包
myproject/deployment
- 部署服务器配置文件,固定装置(虚拟数据)等等。
myproject/docs
- 项目的文档
myproject/tests
- 项目测试
myproject/myproject
- 项目的操作代码(和settings.py,urls.py)
扩展 myproject/myproject
文件夹:
myproject/myproject/app1
- 常规应用(包含其特定模板/静态文件)
myproject/myproject/app2
- 另一个常规应用(与上述相同)
myproject/myproject/website
- 半特殊应用,按惯例。
此website
应用程序基本上包含4件事:
1)空models.py
(以便django将其视为有效的应用)
2)views.py
带有入口点index
视图。也许其他一些观点不适合任何其他特定应用。
3)management
目录,其中包含适用于整个项目的自定义django commands。
4)templates
目录,其中包含404.html和505.html。它还有一个名为website
的子目录,其中包含每个其他应用extends
的通用/基本html模板,以及
index.html
。
5)static
目录,其中包含名为css
,js
和media
的后续子目录,用于全局静态文件。
我猜没有异国情调。我认为大多数人都遵循类似的模式,但如果有的话,我想在这里效率低下。
修改强> 关于我使用的生产VS开发的设置 流行的settings_local模式,你可以阅读here,最终会 引导你here,它描述了一个更好的模式。