settings.pyには以下のような記述があります。
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, "templates")], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
このうち、 [os.path.join(BASE_DIR, "templates")] のBASE_DIR は何を意味しているのか知りたいです。
調べたところ、この記事に以下のような説明がありました。
1.6 の場合、settings.pyにBASE_DIRが、os.path.dirname() を利用して用意されています。
Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
BASE_DIR = os.path.dirname(os.path.dirname(file))
これを使わない手はないですよね。
次のような定数設定に使うと、配置するディレクトリが変わるたびに書き換えの必要がなくなり楽になります。
言っている意味はわかるんですが、今度は os.path.dirname(os.path.dirname(file)) の意味がわかりません。
公式ドキュメントも読みましたが、 os.path.dirname(os.path.dirname(file)) の意味するところが結局理解できませんでした。
どなたか、わかりやすく教えていただけないでしょうか。よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/15 23:43