概要
DjangoでWebアプリケーションを開発する際、templatesフォルダをアプリケーションフォルダ直下におくか、ルート(manage.pyなどと同じ階層)置くかで、settigns.pyの内容が変わります。
それに関する備忘録的なメモです。
Djangoでのフォルダ階層
Djangoでは、一つのプロジェクトの中で複数のアプリケーションを作れます。
例えばユーザー管理のアプリケーションとしてaccount, 写真投稿のアプリケーションとしてpostsなどと言ったぐいあです。その際に、フォルダの構成には二通りあります。
各アプリケーションの下にtemplatesフォルダを配置
通常はこのアプリケーションごとに、templatesフォルダを作るようです。
というか、Djnagoのマニュアルなどでは大体が一つのアプリケーションを前提としているので自動的にそうなっているようです。
Djangoのプロジェクトを作ったときに自動生成されるsettings.pyもそれを想定しています。
つまり、アプリケーションフォルダの下にtemplatesを作るのであれば、settigns.pyはデフォルトのままで使えます。
ルートにtemplatesを配置
個人的には上に書いたデフォルトのやり方はあまり好きではありません。
私はルート(migrate.pyなどと同じ階層)にtemplatesフォルダを置くようにしています。
その際に、settings.pyを次のように変更する必要があります。
Before
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
---------(中略)-----------
},
]
After
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],# ここを変更
'APP_DIRS': True,
---------(中略)----------- },
},
]
以上、簡単ではありますが、あくまでも自分への備忘録が目的なのでご了承ください。