繁体   English   中英

Django:使用BASE_DIR创建动态路径

[英]Django : Create a dynamic path with BASE_DIR

我有一个非常简单的问题,但我不明白为什么它不起作用。 我想将路径设置为.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'

如何定义从BASE_DIR的路径并返回到.json文件?

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

不用连接字符串,而使用os.path.join这样您就不必担心丢失/重复的正斜杠。

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

首先,代码中的问题应该很明显:您缺少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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM