Django – Hello! – 単純なアプリケーション

概要

特定のURLにアクセスするとブラウザーに”Hello!”とだけ表示させるプロジェクトを作成する。要点は以下の通り。

  • Djangoのプロジェクトは複数のアプリケーションを含むことができる
  • アプリケーション作成はmanage.pystartappオプションで実行
  • リクエストに対応した処理を行うview関数をviews.pyに定義
  • 特定のURLへのアクセスが対応するview関数にルーティングされるよう、urls.pyに設定

仕様

動作は以下の通り。

  • URLにhttp://localhost:8000/helloを指定してリクエスト
  • 文字列"Hello!"を返す(ブラウザーに表示される)

構造は以下の通り。

  • Hello表示のアプリケーションをhelloとする
  • リクエストに対応するview関数をsay_hello()とする
  • say_hello()はリクエストに対して文字列"Hello!"をレスポンスで返す

プロジェクトのスタート

まずgreetingsという名前でディレクトリーを作成し、そのディレクトリー下にプロジェクト作成。ここではサブディレクトリー名をconfigとしている。

プロジェクトの構成は以下の通り。

settings.py編集後にサーバーを起動してDjangoのwelcomeページが表示されることを確認しておく。

ここでのsettings.pyの編集内容は以下の通り。

  • ALLOWED_HOSTSへの追加
  • DATABASESのコメントアウト
  • 言語とタイムゾーンの設定

サーバー起動はVagrantのプライベート環境下なので以下の通り。

ブラウザーからのアクセスはhttp://localhost:8000で。

アプリケーションの作成

アプリケーション作成は、プロジェクトディレクトリー直下(manage.pyのある場所)で以下を実行。

ここでは、ブラウザーに”Hello!”を表示するためのhelloアプリケーションを作成する。greetingsディレクトリー下で以下を実行。

ディレクトリー構成は以下のようになる。新たにhelloディレクトリーが追加されている。

settings.pyにアプリケーションを追加

プロジェクトでhelloアプリケーションを認識するため、settings.pyINSTALLED_APPSにアプリケーション名'hello'を追加。

viewの作成~views.py

リクエストに対応した処理を、helloアプリケーションディレクトリー内のviews.pyファイルに記述。

  • 単純にHTTPレスポンスで文字列を返すため、HttpResponseをインポート
  • view関数としてsay_hello()を定義し、文字列を返すよう記述

ルーティング~urls.py

想定しているURLに対して定義したview関数が呼ばれるようにルーティング。プロジェクトサブディレクトリーのurls.pyファイルに記述を追加する。

  • say_hello()を使うためインポートが必要
  • urlpatterns/helloからsay_hello()へのルーティングを定義

ブラウザーから接続

以下のURLでブラウザーに”Hello!”と表示される。

なお、これ以降localhost:8000のルートに接続すると404エラーとなる。

ルーティングを記述したurls.pyにホストのルートへのルーティングを追加すると、http://localhost:8000のURLに対しても”Hello!”が表示されるようになる。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です