0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ベストプラクティス

Last updated at Posted at 2019-07-10

アプリ構成ベストプラクティス

プロジェクト構成を分かりやすく。
ディレクトリ、ファイル構成の最適化。

デフォルトのまま構築すると、少々問題がある

  • ベースと設定のディレクトリ名が被る問題
  • staticファイルがアプリごとに配置されてしまう問題
  • テンプレートフォルダがアプリごとに配置されてしまう問題

ベースと設定のディレクトリ名が被る問題

設定ファイルディレクトリ名を指定した上で、コマンド実行。

mkdir django
cd django

startproject

django-admin.py startproject config .
django
├── config
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

staticファイルがアプリごとに配置されてしまう問題

ディレクトリ構成

ベースディレクトリ直下に、静的ファイル用ディレクトリを設置する。

django
├── config
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── static
│   ├── app
│   ├── images
│   └── js
└── templates

静的ファイルディレクトリ設定

STATIC_URL
静的ファイル配信用ディレクトリ。
python manage.py startapp [app]にて生成されたディレクトリ内のstaticフォルダの場所を指す。
ベストプラクティス上、使用しない。

STATICFILES_DIRS
任意の、staticフォルダの定義が可能。

STATIC_ROOT
本番環境で使用するstatisフォルダ設定に使用。
DEBUG=False(本番環境)の場合に適用される。

example
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PROJECT_NAME = os.path.basename(BASE_DIR)

STATICFILES_DIRS = os.path.join(BASE_DIR, 'static')

テンプレートフォルダがアプリごとに配置されてしまう問題

ディレクトリ構成

ベースディレクトリ直下に、template用ディレクトリを設置する。

django
├── config
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── static
└── templates

templateディレクトリ設定

TEMPLATESにて設定を行う。

setting.py
TEMPLATES = [
    {
        ...
        'DIRS': [<適切なPath>],
    },
]

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?