这一章在我看来应该是Two Scoops of Django1.5最有价值的地方:第三章:How To Lay Out Django Projects
翻译如下:
项目布局因开发者对于最佳布局的不同理解因而有些不同的观点。在这一章,我们将给出一个我们在开发中最常用的方法。
$ django-admin.py startproject mysite
$ cd mysite
$ django-admin.py startapp my_app
$ django-admin.py startapp my_other_app
下面是项目布局:
mysite/
-------manage.py
-------my_app/
------------------__init__.py
------------------models.py
-------------------tests.py
-------------------views.py
-------mysite/
------------------__init__.py
------------------settings.py
-------------------urls.py
-------------------wsgi.py
我们推荐的项目布局:
我们使用django-admin.py startproject 管理命令生成三层架构。我们把内部另外的目录作为git存储库的根目录。
我们的顶层布局如下:
<repository_root>/
-----<django_project_root>/
---------<configuration_root>/
下面详细分析一下:
顶层:存储库根目录
这个顶层目录是项目的绝对路径。在django_project_root外放置关键组件如README,docs/directory,design/directory
.gitignore,requirement.txt文件,其他高层文件被要求如此部署。
第二层:Django 项目根目录
由django-admin.py startproject 命令产生,这通常被视作Django 项目的根目录。
这个目录包含configuration_root,media ,staic目录,一个站点级模版目录以及Django 应用针对于你特定的项目。
第三层:配置根目录
同样有django-admin.py startproject命令产生,这configuration_root目录存放settings模块,基础URLConf(url.py).
这一目录必须是一有效的Python包(包涵一__init__.py模块)
简单的项目布局:
icratings_project/
-----------------------.gitignore
-----------------------.Makefile
-----------------------.docs/
-----------------------.requirements.txt
-----------------------.icratings/
-----------------------..manage.py
-----------------------media/
-----------------------products/
-----------------------profiles/
-----------------------ratings/
-----------------------static/
-----------------------templates/
-----------------------.icratings/
-----------------------.-----------------------.__init__.py
-----------------------.-----------------------.settings/
-----------------------.-----------------------.urls.py
-----------------------.-----------------------.wsgi.py
下节将做一深度回顾。