Python Django Tutorial 学習メモ その1
インストール
python バージョンは 3.7.2
インストールは venv の仮想環境で pip で入れました。
>pip install Django
確認してみる。
>>> import django >>> print(django.get_version()) 3.2.6
プロジェクト作成
プロジェクトを置きたいディレクトリにて
>django-admin startproject study_django
>dir .\study_django
manage.py ファイルと study_django ディレクトリ
>dir .\study_django\study_django
以下のファイルが含まれる。
- asgi.py
- settings.py
- urls.py
- wsgi.py
- __init__.py
アプリケーションを作る
プロジェクトは、特定のウェブサイトの構成とアプリのコレクションであり、
プロジェクトには複数のアプリを含めることができる。
アプリは複数のプロジェクトに存在できる。
>python manage.py startapp myapp00
myapp00ディレクトリができる。
>dir .\myapp00
- admin.py
- apps.py
- migrations
- models.py
- tests.py
- views.py
- __init__.py
ビューを書く
\myapp00\views.py にお馴染み Hello, world を書く
from django.http import HttpResponse def index(request): return HttpResponse("Hello, world.")
ビューと URL を紐づける
\myapp00\urls.py
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
ルートの URLconf に myapp00.urls モジュールの記述を反映させる。
study_django/urls.py に django.urls.include の import を追加して、 urlpatterns のリストに include() を挿入する。
\study_django\urls.py
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('myapp00/', include('myapp00.urls')), path('admin/', admin.site.urls), ]
include() 関数は他の URLconf への参照をすることができる。
動作確認してみる。
>python manage.py runserver
http://localhost:8000/myapp00/ へアクセスして Hello, world. が表示された。
path() 関数は4つの引数を受け取る。
引数のうち route と view の2つは必須で、kwargs、name の2つは省略可能。
path() 引数: route
route は URL パターンを含む文字列。
リクエストを処理するとき、Django は urlpatterns のはじめのパターンから開始し、リストを順に下に見ていく。
path() 引数: view
Django がマッチする正規表現を見つけると、 Django は指定されたビュー関数を呼び出す。
その際は HttpRequest オブジェクトを第一引数に、そしてキーワード引数として route から「キャプチャされた」値を呼びだす。
path() 引数: kwargs
任意のキーワード引数を辞書として対象のビューに渡すことができる。
path() 引数: name
URL に名前付けをしておけば Django のどこからでも明確に参照でき、とくにテンプレートの中で有効となる。