PythonのWebアプリケーションフレームワーク「Flask」を試してみた

普段のお仕事に役立つ普遍的なプログラミングTIPSや、業界で注目度が高い最新情報をお届けする「編集部ピックアップ」。
今回はPythonのWebアプリケーションフレームワーク「Flask」をご紹介します。

はじめに

Pythonは現在、人気が急上昇しているプログラミング言語です。Pythonはプログラムを1行ずつ実行して結果を確認できるインタープリタ型の言語ですが、その特性ゆえ初心者にもわかりやすい言語と言われています。

近年はデータ分析やAI開発にも使用されており、2022年現在ではGoogle社の社内標準言語の一つになっています。検索エンジンを基にしたプログラミング言語ランキング「TIOBE Index」においても、Pythonは2021年度に1位を獲得し、その後も継続して1位を獲得し続けています。

Pythonには開発をサポートするフレームワークが数多くありますが、今回はWebアプリケーション開発やWeb API開発で使用されるフレームワーク「Flask(フラスク)」をご紹介します。

Flaskとは

FlaskはPythonで作成されたWebアプリケーションを作成するためのフレームワークです。

同様のPythonで作成されたWebアプリケーションフレームワークで代表的なものにはDjango、Bottleなどがあります。今回は、その正反対の特徴から比較されることも多いDjangoと比べながら、Flaskの特徴について解説します。

Flaskの特徴

Flaskには大きく2つの特徴があります。

シンプルかつ軽量であり、初期の学習コストが低い

Flaskは中核のプログラムが非常にシンプルでありながら、様々な拡張が可能なように保たれています。デフォルトで用意されている機能は必要最小限であり、そこから自分に必要な機能を追加していくことができます。その軽量さからマイクロフレームワークとも呼ばれており、作成方法もシンプルで初期の学習コストが低いです。

一方、Djangoはフルスタックフレームワークと呼ばれており、データベースを始めとした様々な機能が最初から搭載されています。それゆえにフレームワーク自体のサイズが大きく、初期の学習コストが高いのが特徴です。

拡張機能で、様々な機能を追加できる

Flaskは、デフォルトでPython用テンプレートエンジン「Jinja2」、WSGIライブラリ「Werkzeug」といったライブラリが組み込まれています。他にも、ログイン機能やデータベース機能などの周辺プラグインで拡張することによって、開発に必要な様々な機能を追加していくことができます。

Flaskは小規模〜中規模程度のWebアプリケーションやWeb APIでの採用が多いです。理由としては、Flaskの拡張性はメリットではありますが、大規模になると自分で1つずつライブラリを選定することがデメリットになるからです。

大規模なアプリケーションを作成する場合は、最初から多くの機能が搭載されているDjangoなどの採用も検討するようにしてください。Flaskと比べてDjangoは日本語情報が多いという特徴もありますので、自身のやりたい内容を考えて、採用を検討すると良いでしょう。

使ってみよう!Flaskクイックスタート

それでは、早速Flaskをセットアップしてみましょう。

Flaskは、Python環境で利用できるpip(パッケージ管理ツール)を使いインストールを行います。まずはPythonのインストールからはじめましょう。

Pythonのインストール

Python Japanの公式サイトにアクセスします。

「Pythonのインストール」の項から、自身が利用しているOSを選択してインストール作業を行ってください。

Pythonのインストール

Pythonのバージョンには3系と2系がありますが、FlaskはPython3.6以降をサポート対象としていますので、今回は3系を使用するようにしてください。基本的にはその時点の最新バージョンをインストールして頂ければ問題ありません。

インストール後、コマンドを実行できるアプリを起動し、pythonおよびpipが使用できるようになっていることを確認します。

  • Windowsの場合は「PowerShell」または「コマンドプロンプト」
  • macOSの場合は、「ターミナル」アプリ

以下のコマンドを実行し、結果を確認します。「-V」のVは大文字であることに注意してください。
※ 記事中で使用している「python」コマンドは、環境によってはパスを設定しないと使用できない場合があります。その場合は「python3」コマンドで実行してください。

python -V
pip -V

実行結果に自分のインストールしたバージョンが表示されれば、使用する準備ができてきます。コマンドが実行できない場合はOSを再起動して再度試すようにしてください。

Pythonのバージョン確認

Python実行環境の準備

Pythonは「venv」という仕組みを使用することで、1つのPCの中に複数のPython実行環境を構築することができます。

作業ディレクトリに移動し、以下のコマンドを実行してFlask用のPython実行環境を作成し、有効化します。

  • Windowsの場合
python -m venv venv
.\venv\Scripts\activate
  • macOSの場合
python -m venv venv
. venv/bin/activate
仮想環境の作成

先頭に(venv)がついていると、Python実行環境が有効化されています。なお、有効化は「deactivate」コマンドを実行することで解除できます。Flaskを実行する場合は、Python実行環境が有効化されていることを必ず確認するようにしてください。

Python実行環境を作成すると、作業ディレクトリ内に「venv」フォルダが作成されます。「venv」フォルダ内には、Python実行に必要なファイルが格納されています。

「venv」フォルダの構成
Mac環境の場合のvenvフォルダの構成

Flaskのインストール

それでは、Flaskを準備していきます。

Python実行環境が有効化されている状態で、以下のコマンドを実行してください。

pip install Flask
Flaskのインストール

Successfullyのログが出力されれば、インストールが成功しています。Flask本体の他にも、開発に便利なライブラリも一緒にインストールされます。

FlaskでWebアプリケーションを作成してみよう

準備が整いましましたので、早速Webアプリケーションを作成しましょう。

作業ディレクトリ内に「hello.py」というファイルを作成してください。

hello.py

次に、「hello.py」に、以下の内容を記述してください。今回はWebサーバーにアクセスした際に「Hello, Flask!」という文字を表示するWebアプリケーションを作成します。

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
  return "<p>Hello, Flask!</p>"

Pythonはインデント(字下げ)でまとまりを表現しますので、returnの前のインデントも忘れずに行うようにしてください。

ファイルの入力が完了したら、OSの環境変数にFlaskを起動する設定を追加します。今回は「hello.py」というファイルを起動するため、環境変数に「hello」を設定します。自身が使用しているOSや入力するアプリに対応したコマンドを実行してください。

  • WindowsのPowerShellの場合
$env:FLASK_APP = "hello"
  • Windowsのコマンドプロンプトの場合
set FLASK_APP=hello
  • macOSの場合
export FLASK_APP=hello

Webサーバーを起動する準備が整いましたので、以下のコマンドで起動します。

flask run

実行後にターミナルの表示が切り替わり、開発用サーバが立ち上がります。赤字で表示された警告メッセージは、サーバーが開発用に起動していることを示しています。

Flaskの実行

表示されているURL『http://127.0.0.1:5000』にブラウザでアクセスしてみましょう。作成したFlaskのWebアプリケーションが表示されれば成功です。

ブラウザで確認

さいごに

今回の記事では、Flaskの概要や、環境構築方法についてご紹介しました。

グレープシティでは様々なWebアプリケーションフレームワークと一緒に使えるJavaScriptライブラリを提供しています。無償のトライアル版や、ブラウザ上で手軽に試せるデモアプリケーションも公開しているので、こちらも是非ご覧ください。

\  この記事をシェアする  /