Django は、強力でオープンソースの、Python-ベースのWebフレームワークであり、WebサイトやWebアプリの作成と管理のプロセスを効率化します。Djangoアプリケーションはスケーラブルで、高性能、かつ安全です。また、フレームワークのあらゆる部分について非常に優れたドキュメントが用意されています。
私たちのDjangoに関するシリーズでは、基本的なブログ機能を備えたサンプルWebサイトを実装しながらDjangoを探索してきました。このガイドでは、Djangoアプリのサンプルビューを作成する手順を説明します。
前提条件
このガイドに従うには、以下のコンポーネントが必要です。
- 適切な設定が施された Ubuntu サーバー。詳細については、Ubuntuサーバーのセットアップ.
- を参照してください。適切に設定された Python開発環境.
- データベースサーバー(例:MySQL)。このガイドでは、UbuntuサーバーへのMySQLのインストールと設定.
について詳しく説明します。このガイドは、Djangoに関するシリーズの続編です。まず、以下の以前のガイドを確認しておくと役立ちます:Djangoのセットアップ, Djangoデータベース接続の確立, モデルの作成、およびDjango管理インターフェースの有効化.
このガイドでは、WebアプリがWebリクエストを適切に処理し、適切なレスポンスを返せるようにするDjangoビューの作成方法を紹介します。Django公式ドキュメントで説明されているように、WebレスポンスはWebページのHTMLコンテンツ、リダイレクト、またはHTTPエラーになります。ビュー関数を保存する場所は、Pythonのパス内であれば固定されていません。ただし、ファイルの命名や配置には一般的な慣例があります。このガイドでは、それらの慣例に従います。
ステップ 1. 仮想環境の有効化
DjangoはPythonの仮想環境内で操作するのが最適です。私たちのDjangoアプリである sample_appは専用の仮想環境内に構築されています。まず、仮想環境を有効化します:
|
1 2 3 |
cd sample_app/ . sample_app_env/bin/activate |
ステップ 2. ビュー関数の作成
ブログWebサイトのモデルをホストしている random_appディレクトリに移動します:
|
1 |
cd random_app/ |
ここで、ファイル views.pyは、ビューの作成に必要なコードを保持します。テキストエディタで開きます:
|
1 |
nano views.py |

私たちは、 render()関数を django.shortcutsライブラリから必要とするため、最初の行はそのままにします。 render() 関数は、テンプレートとコンテキストの両方を組み合わせて、適切な HttpResponseオブジェクトとして返すのに役立ちます。
最初のビューは、インデックスページにアクセスしたユーザーを歓迎します。インポートする必要がある関数 HttpResponse()のインポート元となるDjangoライブラリは、 http:
|
1 2 3 4 5 6 7 8 |
from django.shortcuts import render from django.http import HttpResponse def index(request): return HttpResponse(You landed on the welcome page') def individual_post(request): return HttpResponse('Individual posts will appear here') |

ファイルを保存してエディタを閉じます。
ステップ 3. URLをビューにマッピングする
現時点では、これらの関数に指定されたURLがないため、アクセスできません。URL設定ファイル内に別のブロック urlpatternsを追加する必要があります。Pythonでは、これは URLconf(URL設定)ファイルと呼ばれます。
Djangoは、使用するルート URLconfモジュールを決定する必要があります。その後、リスト構造内のすべてのURLパターンを含む urlpatternsを調べます。次に、Djangoは最初の一致が見つかるまでファイルを走査します。一致が見つかると、Djangoはその関連するビューを探します。このビュー関数は、URLパターンに関連するデータと、 HttpRequestオブジェクトを受け取ります。このプロセスのいずれかの時点でエラーが発生すると、エラー処理ビューにリダイレクトされます。.
テキストエディタで、 urls.py( random_appのファイル)を開きます:
|
1 |
nano urls.py |
次のコードを入力します。
|
1 2 3 4 5 6 7 |
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('post/', views.individual_post, name='individual_post') ] |

ファイルを保存してエディタを閉じます。
完了したら、次の配下にあるURLファイルのパスも含める必要があります: sample_app ディレクトリの URLconf。そうしないと、Djangoアプリがそれを認識しません。これは、 URLconf ( sample_app のもの)が、設定ファイルで ROOT_URLCONF として設定されているためです。
アプリのディレクトリに移動します: sample_app:
|
1 |
cd sample_app/sample_app/sample_app/ |
![]()
テキストエディタで、ファイル urls.py を開きます:
|
1 |
nano urls.py |

ファイルに次のコードを入力します:
|
1 2 3 4 5 6 7 |
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('', include('random_app.urls')) ] |

変更をテストしてみましょう。Djangoアプリサーバーを次の場所で起動します: localhost:8000:
|
1 |
python manage.py runserver localhost:8000 |

次のURLにアクセスします:
|
1 |
localhost:8000 |

投稿のURLを確認します:
|
1 |
localhost:8000/posts |
ステップ 4. ブログ投稿の作成
URLパターンを設定し、そのワークフローを確認しました。次は、サンプルのブログを追加して結果を確認してみましょう。
管理パネルから、次の random_app ページに移動します:
|
1 |
localhost:8000/admin/random_app/ |

次の +Add リンクをクリックします( Posts 行):

新しいウェブページには、以下のフィールドで構成されるフォームが表示されます。
- Title(タイトル): ブログ投稿のタイトル。
- Slug(スラッグ): 人間が読みやすいキーワードを含む、有効なウェブアドレスの一部を指します。一般的に、スラッグは投稿のタイトルに基づいて作成されます。
- Content(コンテンツ): ブログ投稿の本文。
- Author(著者): 関連するユーザー名。
投稿を送信するには、 SAVE をクリックします:

ステップ 5. データベース内のデータの表示
次のセクションでは、データベースを操作します。Django専用ユーザーとして MySQL にログインします:
|
1 |
mysql -u sample_app_user -p |

投稿がデータベースに正常に登録されたか確認してみましょう:
|
1 |
USE sample_app_data; |

|
1 |
SELECT * FROM random_app_post; |

やりました!投稿が正常に登録されました!これでMySQLシェルを終了できます。
ステップ 6. ビューの追加調整
ビューに関して、さらにいくつかできることがあります。テキストエディタでファイルを開きます:
|
1 |
nano views.py |
コードは以下のようになります:
|
1 2 3 4 5 6 7 8 9 10 |
from django.shortcuts import render from django.http import HttpResponse from .models import Post def index(request): return HttpResponse('Hello, welcome to the index page.') def individual_post(request): recent_post = Post.objects.get(id__exact=1) return HttpResponse(recent_post.title + ': ' + recent_post.content) |

ここでは、追加の import ステートメントを Post に追加しました。 HttpResponse の引用文字列も、ブログ投稿のデータに置き換えられています。データを参照するために、関連付けられたオブジェクトのブログ投稿IDを使用しています。IDは変数 recent_post に格納されます。これで、フィールドの後にピリオド区切り文字を追加することで、オブジェクトの特定のフィールドを抽出できます。
変更したら、変更内容を確認しましょう。Djangoサーバーを起動します:
|
1 |
python manage.py runserver localhost:8000 |

次に、 Posts ページにアクセスします:
|
1 |
localhost:8000/posts |

作成したブログ投稿が表示されるはずです。
ステップ 7. プロジェクトの終了
Djangoサーバーを終了するには、Ctrl + Cをターミナルから押します。Pythonの仮想環境を無効化するには、次のコマンドを実行します:
|
1 |
deactivate |
最後に
このガイドでは、ビューの作成、URLパターンのマッピング、およびウェブページへのテキスト表示を、次のデータベースから行う方法を説明しました: random_app における Django.これらは、理解して習得する必要があるDjangoの基本的な概念です。
Djangoアプリの作成と管理に役立つその他のリソースは以下の通りです:
- データベース接続を備えたDjangoアプリの作成:チュートリアル
- Ubuntu上でDockerを使用してDjangoとGunicornアプリケーションを構築する
- Docker、Nginx、およびLet’s Encryptを使用してDjangoアプリケーションを保護および拡張する方法
ハッピーコンピューティング!

コメント
コメントはまだありません。最初のコメントを投稿しましょう。