Django:在进行URL的包含时,我应该指定project.app还是app

时间:2010-11-19 00:25:51

标签: python django django-urls

在项目urls.py中包含应用的网址时,我的编码合作伙伴会这样做:

('^stops/', include('stops.urls'))

但是,Django documentation指定以下语法:

('^clients/', include('project_name.app_name.urls'))

他的方式奏效了。是否有理由指定项目名称?

3 个答案:

答案 0 :(得分:2)

这取决于您的PYTHONPATH设置以及项目和应用的结构。

我们有很多项目。每个有几个应用程序。所有这些都在PYTHONPATH上,因此项目名称是必不可少的。

如果您只有一个项目,并且顶级项目目录位于PYTHONPATH上,那么每个应用程序都可以单独解析,您无法使用项目名称。

答案 1 :(得分:1)

这还取决于应用程序是否在您的项目中,或者是可重用的。

我为每个项目都有一个新的virtualenv,并为每个应用程序使用一个单独的mercurial存储库。然后将它们安装到系统路径中(以可编辑的形式进行开发,或以不可编辑的形式进行部署),这意味着<appname>上有PYTHONPATH

答案 2 :(得分:0)

如果你在shell上运行

import this

你会看到有一个python的禅''显式比隐式更好''因此这就是指定项目名称的原因。