【Django】設定フォルダの名前を変える2つの方法(プロジェクト作成時・既存プロジェクト)

投稿日:

はじめに

Djangoで新しくプロジェクトを作成すると、設定ファイルを含むフォルダが自動的に作成されます。
しかしこのフォルダ名がプロジェクト名と同じになるため、最初は「どっちが設定フォルダで、どっちがアプリ全体なのかわかりづらい…」と混乱しがちです。

そこで今回は、

  • 新規プロジェクト作成時に設定フォルダ名を指定する方法

  • すでに作成済みの設定フォルダをリネームする方法

この2つのパターンを紹介します。


1. Django標準構成と問題点

標準の startproject コマンドを使うと、同じ名前のフォルダが二重になります。

結果として次のような構成に:

myproject/ # プロジェクト全体フォルダ 
├─ myproject/ # 設定フォルダ
│ ├─ settings.py
│ ├─ asgi.py
│ ├─ urls.py
│ ├─ wsgi.py
├─ manage.py 

同名フォルダが2つあるため、後々の管理やimport文、環境設定で混乱しやすくなります。

2. パターン①:startproject時に設定フォルダ名を指定する方法

startproject時に設定フォルダ名を指定する場合は、startproject コマンドの 第1引数に設定フォルダ名、第2引数として「.」(ドット) を指定します。

手順1:まずプロジェクト用フォルダを作成

ターミナルで以下を実行して、まずプロジェクト全体を格納するフォルダを作成します。

mkdir myproject
cd myproject 
手順2:設定フォルダを「config(任意のフォルダ名)」としてプロジェクトを作成

続いて、現在のディレクトリ内で次のコマンドを実行します。

django-admin startproject config . 

このようにすると、
「myproject」フォルダ内に manage.py と「config」フォルダが生成されます。

構成は次の通りです:

myproject/
├─ config/
│ ├─ settings.py
│ ├─ asgi.py
│ ├─ urls.py
│ ├─ wsgi.py
├─ manage.py 

これで、外側の「プロジェクト全体フォルダ」と内側の「設定フォルダ」が明確に分かれ、管理しやすい構成のプロジェクトが最初から作成されます。

3. パターン②:既存プロジェクトの設定フォルダを変更する方法

すでに作成済みのプロジェクトでも、フォルダ名を後から変更できます。

手順1:設定フォルダをリネーム
myproject/
├─ config/
│ ├─ settings.py
│ ├─ asgi.py
│ ├─ urls.py
│ └─ wsgi.py
├─ manage.py 
手順2:設定ファイルと環境変数の指定を修正

config/settings.py

# 変更前
ROOT_URLCONF = 'myproject.urls'
WSGI_APPLICATION = 'myproject.wsgi.application'
# 変更後
ROOT_URLCONF = 'config.urls'
WSGI_APPLICATION = 'config.wsgi.application'

 

manage.pyconfig/wsgi.py, asgi.py内のDJANGO_SETTINGS_MODULE の値を変更します。

# 変更前
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
# 変更後
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') 

これでDjangoは新しい設定フォルダを参照するようになります。

手順3:動作確認
python manage.py runserver 

以上を実行してエラーが出ずにサーバーが起動すれば成功です。

おわりに

今回は例として設定フォルダ名を「config」としましたが、任意の名前に変更できます。

設定フォルダの名前を「config」のように明確にしておくことで、プロジェクト構造の見通しがぐっと良くなります。

また、他の開発者と共有する際にもわかりやすく、長期的にメンテナンスしやすい構成になります。

 

Djangoおすすめのディレクトリ構成はこちら↓

【Django】おすすめのディレクトリ構成 プログラミング
【Django】おすすめのディレクトリ構成
更新日:
投稿日:


記事一覧に戻る

関連記事

【Django】おすすめのディレクトリ構成 プログラミング
【Django】おすすめのディレクトリ構成
【Django】context_processorsとは?全テンプレートに共通変数を渡す方法 プログラミング
【Django】context_processorsとは?全テンプレートに共通変数を渡す方法
サイトマップとは? - Djangoでサイトマップを自動で作成する方法 プログラミング
サイトマップとは? - Djangoでサイトマップを自動で作成する方法
Bootstrapでトーストを使う方法 ― ポップアップ通知の実装 プログラミング
Bootstrapでトーストを使う方法 ― ポップアップ通知の実装
テンプレートで「〜前」の形式で表示する方法 — Django の timesince を日本語化する プログラミング
テンプレートで「〜前」の形式で表示する方法 — Django の timesince を日本語化する

人気記事

はじめまして その他
はじめまして
閲覧数: 961
プログラミング初心者が独学で1からPythonを学習し、資格取得・webアプリ作成まで。(資格取得編) プログラミング
プログラミング初心者が独学で1からPythonを学習し、資格取得・webアプリ作成まで。(資格取得編)
閲覧数: 943
VScodeでPython、HTML/CSSコードを自動で整形する方法 プログラミング
VScodeでPython、HTML/CSSコードを自動で整形する方法
閲覧数: 350
【Django】おすすめのディレクトリ構成 プログラミング
【Django】おすすめのディレクトリ構成
閲覧数: 226
X(旧Twitter)カードを正しく表示するためのHTMLの書き方 プログラミング
X(旧Twitter)カードを正しく表示するためのHTMLの書き方
閲覧数: 182

おすすめ記事

プログラミング初心者が独学で1からPythonを学習し、資格取得・webアプリ作成まで。(資格取得編) プログラミング
プログラミング初心者が独学で1からPythonを学習し、資格取得・webアプリ作成まで。(資格取得編)
VScodeでPython、HTML/CSSコードを自動で整形する方法 プログラミング
VScodeでPython、HTML/CSSコードを自動で整形する方法
複数ページの重複モデルを整理して保守性・拡張性を上げる プログラミング
複数ページの重複モデルを整理して保守性・拡張性を上げる
サイトマップとは? - Djangoでサイトマップを自動で作成する方法 プログラミング
サイトマップとは? - Djangoでサイトマップを自動で作成する方法
【Django】context_processorsとは?全テンプレートに共通変数を渡す方法 プログラミング
【Django】context_processorsとは?全テンプレートに共通変数を渡す方法

記事へコメントする

コメント一覧(0件)

関連記事

【Django】おすすめのディレクトリ構成 プログラミング
【Django】おすすめのディレクトリ構成
【Django】context_processorsとは?全テンプレートに共通変数を渡す方法 プログラミング
【Django】context_processorsとは?全テンプレートに共通変数を渡す方法
サイトマップとは? - Djangoでサイトマップを自動で作成する方法 プログラミング
サイトマップとは? - Djangoでサイトマップを自動で作成する方法
Bootstrapでトーストを使う方法 ― ポップアップ通知の実装 プログラミング
Bootstrapでトーストを使う方法 ― ポップアップ通知の実装
テンプレートで「〜前」の形式で表示する方法 — Django の timesince を日本語化する プログラミング
テンプレートで「〜前」の形式で表示する方法 — Django の timesince を日本語化する

人気記事

はじめまして その他
はじめまして
閲覧数: 961
プログラミング初心者が独学で1からPythonを学習し、資格取得・webアプリ作成まで。(資格取得編) プログラミング
プログラミング初心者が独学で1からPythonを学習し、資格取得・webアプリ作成まで。(資格取得編)
閲覧数: 943
VScodeでPython、HTML/CSSコードを自動で整形する方法 プログラミング
VScodeでPython、HTML/CSSコードを自動で整形する方法
閲覧数: 350
【Django】おすすめのディレクトリ構成 プログラミング
【Django】おすすめのディレクトリ構成
閲覧数: 226
X(旧Twitter)カードを正しく表示するためのHTMLの書き方 プログラミング
X(旧Twitter)カードを正しく表示するためのHTMLの書き方
閲覧数: 182

おすすめ記事

プログラミング初心者が独学で1からPythonを学習し、資格取得・webアプリ作成まで。(資格取得編) プログラミング
プログラミング初心者が独学で1からPythonを学習し、資格取得・webアプリ作成まで。(資格取得編)
VScodeでPython、HTML/CSSコードを自動で整形する方法 プログラミング
VScodeでPython、HTML/CSSコードを自動で整形する方法
複数ページの重複モデルを整理して保守性・拡張性を上げる プログラミング
複数ページの重複モデルを整理して保守性・拡張性を上げる
サイトマップとは? - Djangoでサイトマップを自動で作成する方法 プログラミング
サイトマップとは? - Djangoでサイトマップを自動で作成する方法
【Django】context_processorsとは?全テンプレートに共通変数を渡す方法 プログラミング
【Django】context_processorsとは?全テンプレートに共通変数を渡す方法

記事へコメントする

コメント一覧(0件)

シェアする