ブロックチェーン・AI・システム開発の株式会社INDETAIL

Python3.7 + DjangoでHello Worldを作ってみた。

2019.02.08
toshi

こんにちはtoshiです。
皆さんはwebアプリの開発には何の言語を使用していますでしょうか。
私はこれまでは、JavaとPHPをメインで使用していたのですが、最近はPythonも勉強をするようになってきました。
今回は、自分用の備忘録を兼ねてPythonの導入からDjangoでHello Worldページの作成までを行ってみたいと思います。

開発環境

今回は以下の環境で実装を行いました。

  • PC:Mac Book Pro
  • OS:10.14(Mojave)
  • Python:3.7.2
  • Django:2.1.5

開発準備

pyenvのインストール

まずはじめにPythonをインストールします。
macにはPythonがプリインストールされていますが、バージョンが2.7なので3系のバージョンに変更したいと思います。
Pythonのインストール、version管理にはpyenvを使用します。pyenvは以下のコマンドを使用してgitからcloneしてきます。

pyenvをcloneしましたら、ターミナルでpyenvが使用できるように.bash_profileを変更します。
.bash_profileの変更には以下のコマンドを実行します。

以下のコマンドでpyenvのバージョンが確認できましたらpyenvのインストールは成功です。

Pythonのインストール

それではpyenvの準備ができましたのでPythonをインストールしたいと思います。
pyenvでインストールできるPythonのバージョンは以下のコマンドで確認できます。

今回のPython3.7.2を使用しようかと考えているので3.7.2を以下コマンドでインストールします。

※macのOSが10.14(Mojave)だと、エラーが出るので以下コマンドを実行して解決します。

インストールが完了したら以下のコマンドを使用して、Pythonのバージョンを切り替えます。
globalを使用してPythonのバージョンを変えるとシステム全体のバージョンが変わりますので、特定のフォルダのみで使用したい場合はlocalを使いましょう。

以下のコマンドでPythonのバージョンが表示されたら成功です。

Djangoのインストール

Pythonがインストールできたので、Djangoを使用できるようにします。pipというPythonのパッケージ管理ツールを使用して、Djangoでの開発に必要なライブラリをインストールします。

実装

プロジェクトの作成

開発の準備ができたため、プロジェクトを作成していきます。
はじめにプロジェクトを作成したいディレクトリに移動し、以下コマンドでプロジェクトを作成します。
今回はstudyという名前で作成しました。
(以下、作成されたプロジェクトのディレクトリをプロジェクトディレクトリと呼びます。)

上記のコマンドでサーバの起動まではできるようになるので、サーバを起動してみます。
以下コマンドでサーバの起動ができます。

サーバの起動は以下のようなページが表示されれば成功です。

アプリケーションの作成

Djangoでは、プロジェクトの中にサブディレクトリとしてアプリケーションを作成します。
このようにすることで、1つのプロジェクトで複数のアプリを管理することができます。
以下コマンドでHello World用のアプリケーションを作成します。
アプリケーションは、helloworldという名前で作成しました。
(以下、作成されたアプリのディレクトリをアプリディレクトリと呼びます。)

viewの作成

Hello World用のアプリディレクトリが作成できたので、はじめにviewを作成します。
Djangoのviewは、リクエストを受けてhtmlテンプレートの呼び出しと値の受け渡しを行ってくれます。
view自体はviews.pyという名前でアプリディレクトリ内に生成されているので、views.pyを編集します。
今回は以下のように、index.htmlを呼び出すように書き換えました。

テンプレートの作成

先ほどのviewに記載したテンプレートのindex.htmlを作成します。
テンプレートはアプリディレクトリ内の以下のディレクトリ下に作成します。

templates/

テンプレートファイルは以下のように「Hello, world」だけ表示するhtmlを作成しています。

ルーティングの設定

表示するviewの設定ができましたので、ルーティングの設定をします。
ルーティングの設定はurls.pyというファイルを使って設定します。こちらはアプリ作成時に自動生成されないため、手動で作成します。
今回は「http://127.0.0.1:8000/helloworld/」で表示できるようにしようかと考えていますのでアプリディレクトリにurls.pyを作成して以下のように記載しました。

上記の設定でアプリのroot URLに接続するとviewが表示されるように設定しましたが、
上記の設定のみではアプリにURLが割り振られていない状態なので、プロジェクト側のルーティングも設定してアプリにURLを割り振る必要があります。
そのため、プロジェクトディレクトリのurls.pyを以下のように設定し、
「http://127.0.0.1:8000/」直下の「helloworld/」のURLをhelloworldアプリに割り振ります。
※アプリ側には自動生成されませんが、プロジェクト側にはurls.pyが自動生成されますので新規作成は不要です。

設定ファイルにアプリケーションを追加

最後にプロジェクト側をアプリと結びつけをする必要があるので、プロジェクトディレクトリ内のsettings.pyを書き換えます。
書き換える内容は以下のように、INSTALLED_APPS内にアプリを追加します。

動作確認

ここまできたらHello Worldが表示されるようになっているので、サーバを起動して確認してみます。
再度サーバ起動用のコマンドを実行し、「http://127.0.0.1:8000/helloworld/」に接続してみます。

Hello Worldとしか表示していないのでかなり寂しい感じですが実際に表示されることが確認できました!

まとめ

今回は、Hello Worldのページの表示までできました。
触りのみの紹介となってしまいましたが、今後もPythonの勉強は続けたいと思っているので、機会があればこの先もどこかで紹介したいと思います。
Pythonで開発されたwebアプリケーションも増えているかと思いますので、皆さんも機会があれば触ってみてはいかがでしょうか。

toshi

職種 : エンジニア 2016年新卒社員。ネット小説漁りが最近のマイブーム。

「いいね」ボタンを押すと、最新情報をすぐに確認できます。