この投稿について
作業進捗の備忘録、学習効果の向上を目的として記録していきます。
学習しながら作業を進めておりますので、情報が間違っている場合も多々あると思います。
正しい情報は公式ドキュメントを参考にしてください。
開発環境
- macOS High Sierra 10.13.6
- Anaconda 3
- Python 3.7.7
- Djnago 3.0.6
- VisualStudioCode
アプリケーションの作成
前回、Djangoプロジェクト(first_project)を作成しました。
プロジェクト下にアプリケーションを作成してみます。
アプリケーションとは、実際に何らかの処理を行う Web アプリケーションを指します。(公式ドキュメント一部抜粋)
作成方法は簡単で、プロジェクト直下で以下のコマンドを打つだけで、アプリケーションの作成に必要なファイル一式を自動生成します。
first_project % python3 manage.py startapp first_app
アプリはどこに配置してもいいみたいですが、プロジェクトの直下にしました。app名はfirst_app
にしました。
*詳細は公式ドキュメント参照
https://docs.djangoproject.com/ja/3.0/intro/tutorial01/
views.pyの編集
トップページにアクセスした際に表示させる内容を設定するために、first_appフォルダ内のviews.py
を編集します。
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse('Hello World!!')
Hello World!!と表示させるレスポンスを返す関数を記述しています。
アプリケーションの登録
次に、アプリケーションをプロジェクトの設定ファイルに登録してあげる必要があります。
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'first_app',###
]
djangoにアプリケーションの存在を認識してもらうために必ず追記します。
urls.pyの編集
続いて、first_project内のurls.py
を編集します。
urls.pyはサイト全体の目次みたいなもののようです。
from django.contrib import admin
from django.urls import path
from first_app import views #first_app/views.pyの関数を読み込む。
urlpatterns = [
path('',views.index),#indexページ(http://127.0.0.1:8000/)にアクセスした際にviews.indexのレスポンスを返す。
path('admin/', admin.site.urls),
]
以上で下準備は完了です。
Djangoのサーバーを起動して動作確認してみる
first_project % python3 manage.py runserver
http://127.0.0.1:8000/ にアクセスして
Hello World!
と表示されていればOK
URLを指定してみる
今まではhttp://127.0.0.1:8000/
にしかアクセスしていなかったが、
新たにURLを作成し、アクセスできるように設定する。
ここではhttp://127.0.0.1:8000/first_app/
というURLを生成してアクセスできるようにし、
indexページと同じ内容を表示させるように設定する。
方法はいろいろあると思いますが、今回はfirst_appフォルダ内のurls.pyファイルを経由する方法で設定してみます。
appフォルダ内にurls.pyファイルを作成
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
first_project内のurls.pyを編集
公式ドキュメント参照
https://docs.djangoproject.com/ja/2.2/intro/tutorial01/#write-your-first-view
from django.contrib import admin
from django.urls import path, include #includeを新たにインポート
from first_app import views #first_app/views.pyの関数を読み込む。
urlpatterns = [
path('',views.index),
path('first_app/',include('first_app.urls')),#http://127.0.0.1:8000/first_app にアクセスした際にfirst_appフォルダ内の`urls.py`のurlpatternsに記載された処理を返す。
path('admin/', admin.site.urls),
]
追記した部分の処理は、http://127.0.0.1:8000/first_app/ にアクセスした際にfirst_appフォルダ内のurls.py
のurlpatternsに記載された処理を返すという処理になります。
include('first_app.urls')で関連付けをしています。
Djangoのサーバーを起動して動作確認してみる
python manage.py runserver
http://127.0.0.1:8000/first_app/ にアクセスして
Hello World!
と表示されていればOK
このように、指定したURLに指定したのアプリのURLパターンをツリー状に繋げることができます。