[Django]アプリケーションを追加する時の流れ
Djangoではプロジェクト直下に複数のアプリケーションを追加することができます。
簡単にサブディレクトリ型のアプリケーションが構築できるのは便利ですね。
1つのプロジェクト直下に複数のアプリケーションを定期的に追加する機会が多いので備忘録を兼ねて紹介していきます。
ターミナルからアプリケーションを追加する
ターミナルからコマンドで追加していきます。
project$ python manage.py startapp アプリ名
注意したいのはアプリケーション直下のディレクトリでコマンドを入力します。
実行後にはプロジェクト直下にアプリケーションが追加されます。
settings.pyにアプリケーションを追加
アプリケーションの追加後にはsettings.pyにもアプリケーション名を追記します。
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app_1', 'app_2', ←追加 ]
以降でモデルの追加などをやっていくわけですが、1番最初にモデルが決まっているなら先にmodels.pyを編集してmigrateしていた方がいいと思います。
urls.pyにも追記
settings.pyの同じ階層にあるurls.pyにも追記します。
urlpatterns = [ path('admin/', admin.site.urls), path('', include('app_top.urls')), path('app2/', include('app2.urls')),←追加 ]
このincludeはアプリケーション内のurlsファイルを参照してね、というものです。
個別のルーティングはアプリケーション内に記述した方が見やすくなります。
しかし、アプリケーションを作成しただけでは内部にurls.pyのファイルがありません。アプリケーション直下にurls.pyを作成しておきます。
※サイトマップを追加する際は特に注意
その他、追加事項
その他にも色々と追加事項がありますが、駆け足で紹介。
- アプリケーションのurls.pyを追加→編集
- アプリケーションのadmin.pyを編集(import部分注意)
- アプリケーションのmodels.pyを編集(import部分注意)
- アプリケーションのviews.pyを編集(return部分注意)
さらにアプリケーション直下にディレクトリを作成する必要もあります。
- staticディレクトリを作成
- templatesディレクトリを作成
そして、それぞれのディレクトリ内に必要なフィルを作成していきます。
最後にmodelの変更を行っているのでmakemigrations→migrateもやっておきます。
サイトマップも追加の場合
サイトマップも追加する場合はプロジェクトの urls.pyとアプリケーション内にsitemaps.pyを追記して記述します。