次の3つのページを遷移するサンプルです。
http://127.0.0.1:8000/
http://127.0.0.1:8000/app01/
http://127.0.0.1:8000/app02/
Django のインストール
sudo apt install python3-django
次を作成します。
プロジェクト proj01
アプリケーション home
アプリケーション app01
アプリケーション app02
django-admin startproject proj01
cd proj01/
python manage.py migrate
python manage.py startapp home
python manage.py startapp app01
python manage.py startapp app02
この時点で開発サーバーを動かして、ディフォールトのページが表示されることを確認します。
python manage.py runserver
ちゃんと表示されたら次にすすみます。
メッセージを表示するプログラムの編集
home/views.py
app01/views.py
app02/views.py
既にあるものを次のものと差し替えます。
home/views.py
from django.http import HttpResponse
def index(request):
str_out = ""
str_out += "*** home *** start ***<p />"
str_out += "ホームです。<p />"
str_out += "<a href='app01/'>app01</a><p />"
str_out += "<a href='app02/'>app02</a><p />"
str_out += "*** home *** end ***<p />"
return HttpResponse(str_out)
app01/views.py
from django.http import HttpResponse
def index(request):
str_out = ""
str_out += "*** app01 *** start ***<p />"
str_out += "こんにちは<p />"
str_out += "Dec/09 AM 09:45<p />"
str_out += "<a href='../'>Return</a><p />"
str_out += "*** app01 *** end ***<p />"
return HttpResponse(str_out)
app02/views.py
from django.http import HttpResponse
def index(request):
str_out = ""
str_out += "*** app02 *** start ***<p />"
str_out += "おはようございます。<p />"
str_out += "Dec/09 AM 09:55<p />"
str_out += "<a href='../'>Return</a><p />"
str_out += "*** app02 *** end ***<p />"
return HttpResponse(str_out)
次を作成します。すべて同じです。
home/urls.py
app01/urls.py
app02/urls.py
home/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
proj01/settings.py を編集
proj01/settings.py
(省略)
INSTALLED_APPS = [
'home',
'app01',
'app02',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
(省略)
proj01/urls.py の編集
proj01/urls.py
from django.contrib import admin
from django.urls import path
from django.urls import include
urlpatterns = [
path('', include('home.urls')),
path('app01/', include('app01.urls')),
path('app02/', include('app02.urls')),
path('admin/', admin.site.urls),
]
開発サーバーを起動して確認
python manage.py runserver
次のバージョンで確認しました。
$ python --version
Python 3.10.7
$ django-admin --version
4.1.3
サーバーを gunicorn にする時は、次のように起動します。
gunicorn proj01.wsgi
gunicorn のインストール
sudo apt install gunicorn