Django:使用BASE_DIR创建动态路径

时间:2018-10-22 15:15:06

标签: python django

我有一个非常简单的问题,但我不明白为什么它不起作用。 我想像这样将路径设置为char operator "" _ch(unsigned long num) { return static_cast<char>(num); } //... auto ch = 97_ch;

.json file

但是我遇到了这个问题:

with open(settings.BASE_DIR + '../../package.json') as package_json_file:

如何定义FileNotFoundError: [Errno 2] No such file or directory: '/home/val/Bureau/Projets/APP/app/src../../package.json' 的路径并返回.json文件?

2 个答案:

答案 0 :(得分:3)

您可以在错误消息中看到问题:src../../package.json-src..中缺少正斜杠。

使用os.path.join代替串联字符串,这样您就不必担心丢失/重复正斜杠。

import os
os.path.join(settings.BASE_DIR, '../../package.json')

答案 1 :(得分:2)

首先,代码中的问题应该很明显:BASE_DIR与要添加的硬编码路径之间缺少反斜杠。这个

with open(settings.BASE_DIR + '/../../package.json') as package_json_file:

应该可以工作(当然如果有包装的话)。

但是,为避免此类不一致,最好显式使用os.path.join正确创建路径,即可以使用

with open(os.path.join(settings.BASE_DIR, '..', '..', 'package.json')) as package_json_file:

有关加入的更多信息:https://docs.python.org/3/library/os.path.html#os.path.join