LoginSignup
5
6

Django で簡単なページ遷移をする

Last updated at Posted at 2018-12-09

次の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

image.png

ちゃんと表示されたら次にすすみます。

メッセージを表示するプログラムの編集

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

http://127.0.0.1:8000/
home.png

http://127.0.0.1:8000/app01/
app01.png

http://127.0.0.1:8000/app02/
app02.png

次のバージョンで確認しました。

$ python --version
Python 3.10.7

$ django-admin --version
4.1.3

サーバーを gunicorn にする時は、次のように起動します。

gunicorn proj01.wsgi

gunicorn のインストール

sudo apt install gunicorn
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6