改变Django应用的默认路径

在Django中,合作django-admin来创建应用,然后可使用manage.py startapp来创建一个新的应用。当然也可以在项目目录中创建一个目录,这个目录名就是应用的名称,里面放着__init__.py,views.py, models.py等。但应用的位置总是在项目的下一线目录中,如果一个项目需要多个应用的话,我想一定不怎么好看了,在项目的目录中就存在着大量的应用程序的目录了,有没有办法也将这些应用归为一个目录中呢?当然答案是步定的。

例如,我想当我所创项目的所有应用都放到一个名为“apps“的目录中,那么,可以通过site模块来实现。对这个模块,看到别人所写的代码是这样的;

1 import site
2
3 from django.core.management import execute_manager
4
5 ROOT = os.path.dirname(os.path.abspath(__file__))
6 path = lambda *a: os.path.join(ROOT, *a)
7
8 site.addsitedir(path('apps'))

对于site.addsitedir,可以在命令行下测试,使用sys.path可以查看到前后的差别。

 1 In [1]: import site
2
3 In [2]: import sys
4
5 In [3]: sys.path
6 Out[3]:
7 ['',
8 '/home/wyatt/hg/nice/bin',
9 '/home/wyatt/hg/nice/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg',
10 '/home/wyatt/hg/nice/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg',
11 '/home/wyatt/hg/nice/lib/python27.zip',
12 '/home/wyatt/hg/nice/lib/python2.7',
13 '/home/wyatt/hg/nice/lib/python2.7/plat-linux2',
14 '/home/wyatt/hg/nice/lib/python2.7/lib-tk',
15 '/home/wyatt/hg/nice/lib/python2.7/lib-old',
16 '/home/wyatt/hg/nice/lib/python2.7/lib-dynload',
17 '/usr/lib/python2.7',
18 '/usr/lib/python2.7/plat-linux2',
19 '/home/wyatt/hg/nice/lib/python2.7/site-packages',
20 '/home/wyatt/hg/nice/lib/python2.7/site-packages/PIL',
21 '/home/wyatt/hg/nice/lib/python2.7/site-packages/IPython/extensions']
22
23 In [4]: site.addsi
24 site.addsitedir site.addsitepackages
25
26 In [4]: site.addsitedir('apps')
27
28 In [5]: sys.path
29 Out[5]:
30 ['',
31 '/home/wyatt/hg/nice/bin',
32 '/home/wyatt/hg/nice/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg',
33 '/home/wyatt/hg/nice/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg',
34 '/home/wyatt/hg/nice/lib/python27.zip',
35 '/home/wyatt/hg/nice/lib/python2.7',
36 '/home/wyatt/hg/nice/lib/python2.7/plat-linux2',
37 '/home/wyatt/hg/nice/lib/python2.7/lib-tk',
38 '/home/wyatt/hg/nice/lib/python2.7/lib-old',
39 '/home/wyatt/hg/nice/lib/python2.7/lib-dynload',
40 '/usr/lib/python2.7',
41 '/usr/lib/python2.7/plat-linux2',
42 '/home/wyatt/hg/nice/lib/python2.7/site-packages',
43 '/home/wyatt/hg/nice/lib/python2.7/site-packages/PIL',
44 '/home/wyatt/hg/nice/lib/python2.7/site-packages/IPython/extensions',
45 '/home/wyatt/hg/nice/nicereader/apps']

注意第45行。


转载于:https://www.cnblogs.com/wyattwang/archive/2012/01/28/2330511.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值