簡體   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