初心者のためのFlaskアプリ開発② FlaskでHelloWorldアプリをつくる

2019-07-11

こんにちは。
今回は、FlaskでHelloWorldプログラムを作成し、ローカルで実行する方法を丁寧に解説したいと思います。

本記事の構成

この記事の構成は以下の通りです。

  1. Flaskとは何か?
  2. 設定した仮想環境を立ち上げる
  3. コンソールでPythonを実行する
  4. Flaskのコードを書いてみる
  5. ローカルサーバーで実行する

Flaskとは何か?

Flaskとは、werkzeugとjinja2に基づく、Pythonの軽量フレームワークです。

werkzeugとは、簡単に言えば、WSGIというHTTPサーバーインターフェース規格のことです。
jinja2は、HTMLの中にPythonのコードを埋め込める仕組みです。

Flaskは、「マイクロフレームワーク」と呼ばれます。

Flask自身は、DjangoやRailsのようなデータベース抽象化レイヤやフォーム値の検証などの機能を持たず、最小限の機能のみ標準で実装されています。

その反面、拡張性が高く、軽量で学習しやすい一方で、中規模程度の実用にも堪えうるという、Webアプリケーションフレームワークです。
今回はこのFlaskでWebアプリの開発を行っていきたいと思います。

設定した仮想環境を立ち上げる

ではまず、設定した仮想環境を立ち上げましょう。

ターミナル、もしくはコマンドプロンプトを開いてください。

このような画面になったら、以下のコマンドを入力してみましょう。

  canda info -e

すると、設定した仮想環境の一覧が表示されます。

condaというのは、Anacondaに内蔵されている、Python用に作られたパッケージ管理システムと環境マネジメントシステムのことです。
condaを使うことで、非常に簡単に環境の管理を行うことができます。

設定した環境が一覧として表示されたら、その中で実行したい環境を選んで次のコマンドを実行してください。

  //mac,Linuxはこちら
  source activate 環境名
  //windowsはこちら
  activate 環境名

このように、頭に()が表示されれば成功です。

コンソールでPythonを実行する

一度Pythonを起動してみましょう。
先程のターミナル上で、pythonと入力してください。
インタプリタが起動します。

そこで、

  >>print("hello python")

と入力してみます。

このような表示になれば成功です。

Flaskのコードを書いてみる

それでは、いよいよFlaskのコードを書いてみましょう。
まずはアプリケーション用のディレクトリを作成し、移動します。
次のコマンドを入力してください。

  mkdir フォルダ名 //ディレクトリの作成
  cd フォルダ名 //ディレクトリに移動
  touch hello.py //ファイルの作成

ちなみに、windowsにtouchコマンドはないので、GUIでアプリケーションディレクトリ下にファイルを作って上げてください。

hello.pyファイルを作成したら、エディタで以下のコードを書きましょう。

  from flask import Flask
  app = Flask(__name__)
  @app.route('/')
  def hello_world():
    return 'Hello, World!'

これでアプリケーションは完成です!

簡単にコードの意味を解説しておきます。
ほとんど公式ドキュメントの和訳そのままなので少しややこしいかもしれませんので、飛ばしても大丈夫です。

最初に、Flaskクラスをインポートしました。
先程説明したように、このクラスのインスタンス、つまりFlaskクラスとして生成されるアプリケーションは全てWSGIアプリケーションになります。

次に、このクラスのインスタンスを作成しました。
最初の引数は、アプリケーションのモジュールまたはパッケージの名前です。
単一のモジュールを使用している場合、アプリケーションとして起動されたか、モジュールとしてインポートされたかによって、名前が異なるため、__name__を使用します。

次に、route()デコレータを使用して、FlaskにどのURLが関数をトリガーするかを伝えます。
今回はルートに設定しています。
ちなみに、複数のURLで異なる関数を動かしたいときは、@app.route()の引数の値を変更してあげれば実装できます。

ローカルサーバーで実行する

では、早速サーバーを立ち上げてアプリケーションを実行しましょう!
コマンドで、

  set FLASK_APP=hello.py
  python -m flask run

を実行してください。

このような表示になったら、表示されているアドレスをブラウザで開いてみましょう。

無事に表示されました!
おめでとうございます!

今回は、FlaskでHelloWorldアプリケーションを作成し、ローカルサーバーで実行するところまでを解説しました。
とはいえこのままではなんとも見た目が微妙なので、次回はテンプレートを用いて画面を作成してみましょう!

次の記事:
初心者のためのFlaskアプリ開発③ Flaskのテンプレートビューを使って画面に実行結果を表示させる

前の記事:
初心者のためのFlaskアプリ開発① AnacondaでPythonの開発環境をつくる