LoginSignup
10
6

More than 3 years have passed since last update.

DjangoでのTemplatesの場所

Posted at

概要

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,
---------(中略)-----------        },
    },
]

以上、簡単ではありますが、あくまでも自分への備忘録が目的なのでご了承ください。

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6