Djangoの設定ファイルを置くディレクトリ名の変更

Django

はじめに

Djangoで作成した既存プロジェクトの設定ファイルが置いてあるディレクトリ名を変更したかったので調べました。
以下のコマンドでは、プロジェクト名と同じ名前で設定ファイルを置くディレクトリが作成されます。

django-admin startproject project


project
- project
    - asgi.py
    - wsgi.py
    - urls.py
    - settings.py
- manage.py

プロジェクト作成時にconfigディレクトリに設定ファイルを作る場合は、以下のように行います。
/home/www/wsgi以下にプロジェクトを作ると仮定します。

mkdir /home/www/wsgi/project
cd /home/www/wsgi/project
django-admin startproject config .


project
- config
    - asgi.py
    - wsgi.py
    - urls.py
    - settings.py
- manage.py

環境

- Debian12 bookworm
- Django 5.0.6

設定ディレクトリ名の変更

「django-admin startproject project」コマンドで作成したprojectディレクトリをconfigに変更します。

projectディレクトリ名の変更

cd /home/www/wsgi/project
mv project config

manage.py

cd /home/www/wsgi/project
vi manage.py

projectをconfigに修正します。

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')

↓

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')

wsgi.py

cd /home/www/wsgi/project/config
vi wsgi.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')

↓

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')

asgi.py

cd /home/www/wsgi/project/config
vi asgi.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')

↓

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')

settings.py

cd /home/www/wsgi/project/config
vi settings.py
ROOT_URLCONF = 'project.urls'
WSGI_APPLICATION = 'project.wsgi.application'

↓

ROOT_URLCONF = 'config.urls'
WSGI_APPLICATION = 'config.wsgi.application'

uwsgi.ini

uWSGIを使っている場合は、uwsgi.iniを修正します。

module = project.wsgi:application

↓

module = config.wsgi:application

Daemonの再起動

NginxとuWSGIを使っているのでDaemonを再起動します。
uwsgi-projectは独自に作成したプロジェクト用の起動スクリプトです。

sudo systemctl restart nginx

sudo systemctl restart uwsgi-project

Comments