在我的一个应用程序中,我想从我机器上的另一个目录加载一些数据。我的Django项目位于C:/Projects/MyProject
,我的应用程序位于C:/Projects/MyProject/myapp
,我的数据目录位于C:/Data/MyAppData
。由于各种原因,我不想将这些数据直接存储在应用程序的静态目录中。我该怎么做?你知道吗
这是我试过的。在C:/Projects/MyProject/settings.py
中,我有以下内容:
import os
DATA_ROOT = `C:/Data`
DATA_DIR = os.path.join(DATA_ROOT, 'MyAppData')
但是现在如何引用视图文件中的DATA_DIR
?你知道吗
另外,假设我希望保持所有内容的相对性,并避免硬编码C:/Data
。这可能吗?如下所示:
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
DATA_ROOT = BASE_DIR + '../../../Data'
DATA_DIR = os.path.join(DATA_ROOT, 'MyAppData')
BASE_DIR + '../../../Data'
不包含适当的中间分隔符。在那里也使用os.path.join
。你知道吗顺便说一句,
os.path.join
接受多个参数。所以你可以这样写:要访问视图中的
DATA_ROOT
,请在视图中导入settings
:更新
如果使用Python 3.4+,则可以使用^{} :
相关问题 更多 >
编程相关推荐