【Python】Django ~ 基本編 / アプリ ~

■ はじめに

https://dk521123.hatenablog.com/entry/2022/08/07/121017
https://dk521123.hatenablog.com/entry/2022/08/08/140619

の続き。

今回は、 Django (ジャンゴ)  の「アプリ」について学ぶ。

これで、 Django (ジャンゴ)  に関する仕組みの知識ベースは
ある程度できたかなっと。

目次

【1】アプリ
 1)プロジェクトとアプリとの関係
【2】アプリ作成する方法
【3】サンプル

【1】アプリ

* Webサービスにおいて、必要な機能単位

https://docs.djangoproject.com/ja/4.1/intro/tutorial01/

1)プロジェクトとアプリとの関係

a) プロジェクト

* システム全体 (アプリも含む)

b) アプリ

* システムの一機能(サブプロジェクト的な)

 => Django は、大規模システム向きと学んだが、
  アプリごとに開発を分けられる意味でも
  確かに向いてそうだと思った

【2】アプリ作成する方法

# プロジェクト「helloworld」に入る
cd helloworld

# python manage.py startapp <Application Name>
python manage.py startapp helloworldapp

出力結果(フォルダ構成)

helloworld
 + helloworld <= 元々あったプロジェクトフォルダ
 + helloworldapp <= コマンド実行により作成されたフォルダ
  + admin.py ... 管理画面で使われるファイル
  + apps.py ... アプリ名の設定などで使われるファイル
  + models.py ... モデル(データ)を扱う際のファイル
  + tests.py ... 単体試験用ファイル
  + views.py ... ビュークラスのファイル
  + migrations <= フォルダ
 etc...

【3】サンプル

* 「【2】アプリ作成する方法」で作成したアプリ「helloworldapp」を
 ブラウザ表示してみる

helloworld/settings.py

# 一部抜粋
# helloworldapp/apps.py 内のクラス「HelloworldappConfig」を追加

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'helloworldapp.apps.HelloworldappConfig', # ADD
]

helloworldapp/views.py

from django.shortcuts import render
from django.http import HttpResponse

def helloworldappview(request):
  response_object = HttpResponse('Hello World!!????')
  return response_object

helloworldapp/urls.py

from django.urls import path
from .views import helloworldappview

urlpatterns = [
  path('helloworldapp/', helloworldappview),
]

helloworld/urls.py

from django.contrib import admin
from django.urls import path, include # ADD include


urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('helloworldapp.urls')), # ADD
]

動作確認

~~~~
python ./helloworld/manage.py runserver
~~~~
などで、サーバを起動した状態で
ブラウザで以下のURLにアクセスする
 => 「Hello World!!????」が表示されるはず

http://127.0.0.1:8000/helloworldapp/

関連記事

Django ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/08/07/121017
Django ~ 基本編 / Class-based View ~
https://dk521123.hatenablog.com/entry/2022/08/08/140619
Django ~ 基本編 / model ~
https://dk521123.hatenablog.com/entry/2022/08/17/231732