演習 - パスとビューを作成する

完了

アプリ構造を作成したら、独自のカスタム コードを追加する手順を開始できます。 ビューを作成してから、URLconf 内にパスを登録します。

ビューを作る

  1. Visual Studio Code 内で、hello_world 内にある views.py を開きます。

  2. views.py 内のコードを次のコードに置き換えます。

    from django.shortcuts import render
    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("Hello, world!")
    

    ヘルパー関数 HttpResponse を使用すると、テキストまたはその他のプリミティブ型を呼び出し元に返すことができます。

    Note

    views.py を開くと、PyLint をインストールするように求めるメッセージが Visual Studio Code から表示される場合があります。 このメッセージが表示された場合は、[PyLint のインストール] を選択します。

ルートを作成する

ビューが作成されたら、次のステップはそれを適切な URL またはパスにマップすることです。

  1. Visual Studio Code 内で、hello_worldurls.py という名前のファイルを作成します。

  2. 次のコードを新しい urls.py に追加します。

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index'),
    ]
    

このコードの最も重要な部分は urlpatterns タプルです。 このタプルは、ビューと URL が接続またはマップされている場所です。 ご覧のとおり、views.py ファイルをインポートして、urlpatterns 行内で使用できるようになりました。

URLconf をプロジェクトに登録する

新しく作成した URLconf は、hello_world アプリケーション内にあります。 プロジェクトはすべてのユーザー要求を制御するため、helloproject内にあるコア urls.py ファイルに URLconf を登録する必要があります。

  1. helloproject 内で urls.py を開きます。

  2. 冒頭のドキュメント コメントに注意してください。 これらのコメントは、新しい URLconf モジュールを登録する方法について説明しています。

  3. from django.urls import path という行を次の import ステートメントに置換して、includepath を追加します。

    from django.urls import include, path
    

    include を使用すると、URLconf モジュールをインポートでき、pathURLconf のルートを識別するために使用されます。

  4. リスト内の urlpatterns = [ という行の下に、次のコードを追加します。

    path('', include('hello_world.urls')),
    

    このコードは、URLconf を登録します。

doc コメントの下のコードは次のサンプルのようになります。

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

urlpatterns = [
    path('', include('hello_world.urls')),
    path('admin/', admin.site.urls),
]

最初のアプリを実行する

構造が完成し、ビューが追加され、URL がマップされました。 次に、アプリを実行します。

  1. Visual Studio Code の [ターミナル] ウィンドウで、次のコマンドを実行してサーバーを再起動します。

    python manage.py runserver
    
  2. お好みのブラウザーで URL を開きます。

    http://localhost:8000/

これで、Hello, world! がブラウザー ウィンドウに表示されます。 おめでとうございます。 最初の Django アプリケーションを作成しました。