如何将所有django应用程序放在特定文件夹中
我有一个Django项目,假设叫做“project1”。
通常,应用程序的文件夹结构是这样的:
/project1/
/app1/
/app2/
...
__init__.py
manage.py
settings.py
urls.py
如果我想把所有的应用程序放在一个单独的文件夹里,比如叫“apps”,我该怎么做呢?这样的话,文件夹结构应该看起来像下面这样:
/project/
apps/
app1/
app2/
...
__init__.py
manage.py
settings.py
urls.py
9 个回答
21
你可以利用一下在 settings.py
文件里已经存在的 BASE_DIR
变量。
只需要添加以下内容:
import sys
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
希望这对你有帮助。
25
你可以很简单地做到这一点,但你需要把 settings.py
文件改成这样:
INSTALLED_APPS = (
'apps.app1',
'apps.app2',
# ...
)
然后把你的 urls.py
文件改成这样:
urlpatterns = patterns('',
(r'^app1/',include('apps.app1')),
(r'^app2/',include('apps.app2')),
)
.. 还要修改任何 import
的部分,让它指向应用程序的位置
65
你可以通过在你的 settings.py
文件里添加以下内容,把你的 apps
文件夹加入到 Python 的搜索路径中:
import os
import sys
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(PROJECT_ROOT, 'apps'))
这样一来,你就可以像使用项目根目录下的应用一样,使用这个文件夹里的所有应用了!