私はDjangoプロジェクトに取り組んでいる初心者です。 DjangoプロジェクトのSettings.pyファイルには、次の2行が含まれています。
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
両方が同じディレクトリを指していると思うので、違いを知りたいです。また、os.path関数にいくつかのリンクを提供できれば、とても助かります。
_BASE_DIR
_は、_PROJECT_ROOT
_のparentディレクトリを指しています。 2つの定義を次のように書き直すことができます。
_PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
BASE_DIR = os.path.dirname(PROJECT_ROOT)
_
os.path.dirname()
function はパスの最後のセグメントを単純に削除するためです。
上記の___file__
_名は、現在のモジュールのファイル名を指します。 Python datamodel を参照してください:
_
__file__
_は、モジュールがファイルからロードされた場合、モジュールがロードされたファイルのパス名です。
ただし、relativeパスにすることができるため、 os.path.abspath()
function を使用して、ファイル名だけを削除し、モジュールが存在するディレクトリへのフルパスを_PROJECT_ROOT
_に保存する前の絶対パス。