django中的setting.py文件中有一些路径的问题,主要为os.path与sys.path.
1、os.path
os.path.abspath(__file__)
为获取当前文件的绝对路径
os.path.dirname()
为获取当前路径上一级的路径
所以:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
意思就是获取当前文件(setting.py)上一级的上一级的绝对路径为根路径BASE_DIR.
如上图,加黑的mxonline3下面的路径就是根路径BASE_DIR。
os.path.join(path1[, path2[, ...]])
将多个路径组合在一起,第一个绝对路径之前的参数将被忽略。
os.path.join(BASE_DIR, 'apps')
即为将根目录下的apps添加到根目录下,这样可以直接搜索apps下的文件内容。
2、sys.path
sys.path是python的搜索模块的路径集,是一个list.
可以在python 环境下使用:
sys.path.append(‘你的模块的名称’)。
sys.path.insert(0,’模块的名称’)
添加相关的路径,但在退出python环境后自己添加的路径就会自动消失!
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
这样可以直接import apps 下面的app