序章

Django Development シリーズをフォローしていれば、管理者権限を持つユーザーがコメント投稿を介して追加できるDjangoアプリケーションを正常に作成できています。 Djangoの管理UIダッシュボード。 また、MySQLとDjangoのオブジェクトリレーショナルマッピングソリューションモデルを活用して、データの永続性を設定しました。

このチュートリアルでは、WebアプリケーションがWeb要求を適切に処理し、必要なWeb応答を返すことができるようにするDjango viewsを作成します。 Django docs で定義されているように、Web応答は、WebページのHTMLコンテンツ、リダイレクト、またはHTTPエラー(例: 404)。 ビュー関数のコードは、Pythonパス上にある限り、技術的にはプロジェクトのどこにでも存在できます。 ただし、これらのビュー関数が存在するファイルに名前を付けて配置するための一般的な規則がいくつかあり、これらの慣例に従います。

このチュートリアルの手順を完了すると、Djangoブログサイトが最近の投稿をyour-IP-or-domain/postURLにプルします。

前提条件

このチュートリアルは、 Django開発シリーズの一部であり、そのシリーズの続きです。

このシリーズに従わなかった場合は、次のことを前提としています。

  • Djangoバージョン3以降がインストールされています。
  • Djangoアプリをデータベースに接続しました。 MySQLを使用しています。この接続は、Djangoシリーズのパート2「Djangoアプリを作成してデータベースに接続する方法」に従うことで実現できます。
  • Unixベースのオペレーティングシステム、できればUbuntu 20.04クラウドサーバーを使用しています。これは、私たちがテストしたシステムです。 同様の環境でDjangoをセットアップする場合は、チュートリアル「 Ubuntu20.04でDjangoをインストールして開発環境をセットアップする方法」を参照してください。
  • Django管理インターフェースを設定しました。 これは、DjangoAdminチュートリアルに従って実行できます。

このガイドは主にDjangoビューを扱っているため、設定が多少異なる場合でも従うことができる場合があります。

ステップ1—ビュー関数を作成する

ターミナル内で、最初に関連するディレクトリに移動し、Python仮想環境をアクティブ化する必要があります。 このシリーズを続けている場合は、以下のコマンドを入力できます。 アプリを開発するときは、常にPythonプログラミング環境を使用して、コードが含まれ、適切なセットアップで作業していることを確認することが重要です。

  1. cd ~/my_blog_app
  2. . env/bin/activate

仮想環境がアクティブ化されたので、blogsiteディレクトリに移動して、Pythonファイルを開き、最初のビュー関数を作成します。

  1. cd ~/my_blog_app/blog/blogsite

nanoまたは選択したテキストエディタを使用して、views.pyファイルを開いて編集します。

  1. nano views.py

ファイルを開くと、次のようなコードが入力されているはずです。

/my_blog_app/blog/blogsite/views.py
from django.shortcuts import render

# Create your views here.

django.shortcutsライブラリからrender()関数をインポートするimportステートメントを保持します。 render()関数を使用すると、テンプレートとコンテキストの両方を組み合わせて、適切なHttpResponseオブジェクトを返すことができます。 これを覚えておいてください。私たちが作成するすべてのビューで、HttpResponseのインスタンス化、入力、および戻りを行う責任があります。

次に、ユーザーをインデックスページに歓迎する最初のビューを追加します。 HttpResponse()関数をDjangohttpライブラリからインポートします。 その関数を使用して、Webページが要求されたときに表示されるテキストを渡します。

〜/ my_blog_app / blog / blogsite / views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
    return HttpResponse('Hello, welcome to the index page.')

続いて、チュートリアルの後半で作成する個々の投稿を表示する関数をもう1つ追加します。

〜/ my_blog_app / blog / blogsite / views.py
...
def individual_post(request):
    return HttpResponse('Hi, this is where an individual post will be.')

最終的なviews.pyファイルは次のようになります。

〜/ my_blog_app / blog / blogsite / views.py
from django.http import HttpResponse
from django.shortcuts import render


def index(request):
    return HttpResponse('Hello, welcome to the index page.')

def individual_post(request):
    return HttpResponse('Hi, this is where an individual post will be.')

ファイルの編集が終了したら、必ず保存して終了してください。 nanoでは、CTRLXYENTERの順に押すことができます。

現在、これらの関数が指している指定されたURLはないため、URL構成ファイル内のurlpatternsブロックに追加する必要があります。 ビューを追加したら、この構成ファイルを介してURLをビューにマッピングし、作成したページを表示できるようにします。

ステップ2—URLをビューにマップする

Djangoを使用すると、アプリで使用する独自のURLを設計できます。 これは、一般に[X73X]URLconf