プログラミング言語には様々なものがあります。

今回紹介するFlaskは、Pythonで利用できるWebフレームワークです。

  • Flaskの特徴などを詳しく知りたい
  • Flaskのメリットやデメリットは?
  • FlaskとDjangoを比較したい
  • Flaskの導入方法や使い方を知りたい

上記の気持ちを抱いている人に最適な内容になっています。

Flaskの導入を迷っている人はぜひご覧頂き、参考にしてもらえたら幸いです。

Flaskとは

この項目では、Flaskの基礎情報を確認していきましょう。

FlaskはPythonで動作するWebフレームワーク――「マイクロWebフレームワーク」です。


読み方

フラスク」と読みます。


フレームワークのこと

フレームワークとは、プログラミング言語を使ってアプリなどを作成する際、色んな動作を詰め込んだ「枠組み」です。

FlaskはPythonで動くと書きましたが、Pythonで動くフレームワークにはFlask以外にDjangoなどがあります。

他言語・PHPならLalavel、RubyならRuby on Railsなどの有名どころも。

フレームワークを使えば「ログイン」や「ユーザー管理」などの、アプリ開発をする上で使用することが多い機能を簡単に導入することができます。

いちいちコードを書かなくても、フレームワークのルールに従ってプログラミングすることでコード記述量を縮小させることが可能です。


マイクロWebフレームワーク

「マイクロ」という言葉から連想できるように、Flaskは「機能を最小限にまとめたコンパクトなフレームワーク」です。

フレームワークの中には多彩な機能が装備されているものもあります。

例えば、先に挙げたRuby on Rails。Ruby on Railsは1コマンドで簡単にあらかじめ用意されている機能を実装することができます。

対するFlaskは必要なものだけを標準で搭載しており、必要なものはプラグインで補うように作られています。


歴史

Flaskは2010年に発表されました。

開発者はArmin Ronacher。


ライセンス

Flaskが採用しているライセンスは「BSD」です。

著作権表示、そして許諾表示ソース全てのファイルもしくは重要ファイルに記述することで、再利用したり再配布したりが自由におこなえます。


Flaskの特徴

Pythonで動くフレームワーク・Flask。Flaskの特徴について見てみましょう。


軽量

Flaskは最低限必要な機能だけがパッケージされたフレームワークです。そのためとても軽いという特徴を持っています。


簡単

必要最低限の機能しか入っていないため、とても簡単に扱うことができます。


小規模~中規模Webアプリケーションに向いている

フルスペックのフレームワークと違って軽量で小回りが利きます

そのため小規模~中規模のWebアプリケーションを作る際に活躍するでしょう。


Python言語上で動作する

Python用のフレームワークとして作られているため、他言語上では動かないという特徴があります。


Flaskの機能

ここでは、Flaskが標準で搭載している機能についてご紹介します。

Flaskが持っている機能は下記です。

  • ルーティング
  • リクエスト処理
  • blueprint モジュール

他フレームワークを扱ったことがある人なら、機能の少なさに驚くことでしょう。


Flaskのメリット

この項目ではFlaskの持つメリットに焦点を当てました。


とにかく軽い

「Flaskの特徴」で紹介したとおり、Flaskはとにかく軽いです。

機能があまり入っていない(必要最低限の)コンパクトなフレームワークですから、他フレームワークと比較して動きが軽やかです。


学習時間が少なく済む

Flaskの搭載機能はあまり多くありません

たくさんの機能が備わっているフレームワークの場合、1つ1つの機能を学ぶ必要があります。

その点、Flaskは備わっている機能が少ないので学習時間に割く時間を短縮することが可能です。


カスタマイズがやりやすい

Flaskはあまり機能が搭載されていないと書きましたが、それはあくまで「標準で」搭載されていないということ。

もし、「こういった機能がほしい」と思うことがあれば後からプラグインを入れてカスタマイズすることは可能です。

最初から色んな機能が入っているフレームワークの場合、多機能すぎて動きが鈍いことが多いです。

そのため、後づけで機能を入れようとするとさらに重くなってしまいます。

その点、Flaskは自分が必要な機能だけを搭載できます。


プラグインの種類がたくさんある

以前はあまりFlaskのプラグインは出回っていませんでした。

しかし、最近はプラグインの種類が増えてきたため機能を拡張するのが容易になりました。

例えば、「キャッシュ」や「認証」、「ORM(Object Relational Mapping)」など。

自分が欲しいと思う機能を組み込んで、理想の「Flask」を作り上げましょう。


Flaskのデメリット

Flaskにはどんなデメリットがあるのか……導入前に知っておきたい注意点をまとめました。


機能が少ない

Flaskのメリットにもなり、デメリットにもなるのが「機能の少なさ」です。

自分が必要な機能を理解している人なら、プラグインで機能拡張ができるでしょう。

しかし、フレームワークのことをあまりよく理解していない状態だと「あの機能もない」「この機能もない」と混乱してしまう可能性があります。

まずはFlaskとはどういうものなのか、どういう機能が使えるのかを実際に導入して体感してみるのが良いでしょう。


大規模Webアプリケーション向きではない

Flaskの軽さは小規模・中規模のWebアプリケーションを開発するにあたって威力を発揮します。

反対に、大規模Webアプリケーションを作る場合は要注意。

「自動化したい機能があるのに、Flaskにはその機能が装備されていない」という事態も考えられます。

軽量だからと、どんなアプリケーション開発に対してもFlaskを標準のまま使用するのは悪手です。


あれもこれもと入れすぎてしまう可能性がある

Flaskはプラグインが豊富なので、便利そうな機能を見るとついつい機能を拡張してしまいがち。

結果的に別に拡張しなくて良かった機能まで入れてしまった、ということが起こるかもしれません。

そうならないためにも、拡張する際は慎重に臨むことが大切です。

「なくても良い機能ではないか?」「自分が作ろうとしているアプリケーションに、このプラグインは本当にいるのか?」と考えるようにしましょう。


日本語対応の少なさ

Flaskには「軽い」「簡単」という利点があります。

しかし、Flaskの解説などは英語がメイン。

日本語の対応はほとんどないと言って過言ではないでしょう。

そのため、英語が苦手という人は苦手意識が出てしまう恐れがあります。


FlaskとDjangoの違い

PythonにはFlask以外に「Django」というフレームワークが存在します。

どちらかと言えば、Djangoのほうが有名かもしれません。

この項目では、FlaskとDjangoの違いについてご説明します。


Djangoとは

DjangoとはFlaskとは違ってアプリ開発の際に必要な機能が全て揃った状態のフレームワークです。

マイクロフレームワーク」であるFlaskとは反対に「フルスタック・フレームワーク」と呼ばれています。

これ1つで開発に必要な機能が搭載されているため、Djangoがあればアプリ開発は完結できます。


軽さ

フレームワーク自体の軽さは間違いなくFlaskに軍配が上がるでしょう。

動作が軽くて小回りが利くフレームワークが良いならDjangoよりFlaskを選ぶべきです。


機能

最初から搭載している機能が多いほうが良いのであればDjango。

あとから必要な機能を拡張したいのならFlaskというように棲み分けが可能です。


向いているWebアプリケーション

大規模なWebアプリケーションを開発するなら、開発に必要な機能があらかじめ用意されているDjangoが良いでしょう。

逆に小規模・中規模Webアプリケーションを開発するなら、要らない機能によって動作が重くなることがないFlaskを使うのが最適です。


日本語対応

日本語対応に関してはDjangoが秀でています。


トレンド

Webアプリケーション開発の現場には「トレンド」があります。

フロントエンドならSPA、バックエンドならマイクロサービス

これらをメインに据えたWebアプリケーション開発が、最近はトレンドです。

そう考えると、Flaskのような軽量フレームワークの需要は今後伸びてくるでしょう。


Flaskのインストール手順

ここからは、実際にFlaskを使う方法についてご紹介していきます。

まずはインストール手順から説明しましょう。


公式サイトでFlaskをインストールする

公式サイト(英語)にある「Installation」のとおりにインストールをおこないます。


pipを使用したインストール

Flaskはpipを使ってインストールすることができます。

ターミナルを起動して下記コマンドを実行してください。


  1. pip install flask

デフォルトが3系になっていない場合は下記のように記述する必要があるのでご注意ください。


  1. pip3 install Flask

ちなみに、Flaskという表記でなく「flask」でもインストール可能です。

・インストールできたか動作確認する


  1. import flask

上の記述をすることで、Flaskがちゃんとインストールできたか確認することができます。

以上でインストールは完了しました。

かなり簡単に導入ができます。


Flaskのチュートリアル

Flaskには公式のチュートリアルも存在します。

しかし、内容が全て英語なので読んで理解するのに時間がかかることも。

「Flaskをインストールしたあと、何をすれば良いのかわからない」という人はこの項目を確認し、Flaskを触ってみてください。


コードを記述する

  1. from flask import Flask
  2. app = Flask(__name__)
  3. @app.route(‘/’)
  4. def hello_world():
  5. return ‘toiro’

このコードを入力し、ファイルに名前をつけて保存します。ファイル名は何でも良いですが、拡張子は「.py」であることが条件。

一旦、この解説では「astar.py」とします。


プログラムを実行する

Flask Appに「astar.py」のパスを通してから実行しましょう。


  1. $ export FLASK_APP=astar.py
  2. $ flask run
  3. * Running on http://127.0.0.1:5000/

こう記述することで、「toiro」が出力されます。

なお、WindowsユーザーかMacユーザーかによって実行方法が違います。

上記はMacユーザーの場合です。

Windowsユーザーの場合はコマンドラインでパスを通し、「PowerShell」で設定した上で実行しましょう。


表示の確認

http://127.0.0.1:5000/」のURLにアクセスすると、「toiro」が表示されていることを確認できます。

簡単にプログラム実装~出力まで辿り着けるフレームワークということがおわかり頂けたことでしょう。


Flaskの使い方

前項目でFlaskに少し触れることができたら、基本的な機能の使い方を学びましょう。

基本的な使い方は公式サイトの「Quickstart」から閲覧可能です。

Flaskでは「テンプレートエンジン(Jinja2)」や「ToDoアプリ」、「ファイルのアップロード」などの機能が使用可能です。

他にどんな機能が使えるか知りたい人は「Quickstart」を確認してみましょう。


まとめ

以上、Flaskについて解説しました。

  • Pythonを触ってみたい
  • 簡単にできるフレームワークを探している

そういった人にぴったりなマイクロWebフレームワーク・Flask。

Flaskを利用すれば、簡単にプログラムを作成することができます。

カスタマイズがしやすいのも魅力です。

その手軽さ、ぜひ導入して実感してみてください。