Flask入門
エンジニアの中で「Flask」を初めて聞くと言う方は少なくないかもしれません。Flaskは人気言語PythonのWebアプリケーションフレームワークの1つです。ここではFlask入門編ということで、Pythonエンジニアを目指す方に必要な情報を分かりやすく説明いたします。
Flaskとは
Flaskは、Python上で動くマイクロWebアプリケーションフレームワークの名称です。Webアプリケーションフレームワークとしては、日本発のプログラミング言語Ruby上で動く「Ruby on Rails」がよく知られていますが、FlaskはPython上で最もよく利用されるWebアプリケーションフレームワークです。
フレームワークはテンプレートのようなもので、イチからすべてコーディングをしなくとも、あらかじめ備わっている機能を組み合わせ、最小限の工数でプログラムを組める優れものです。
ちなみにFlaskの自称「マイクロ」は、機能が絞られており、身軽であることを示すための形容詞です。
FlaskとDjangoの違い
Flaskは軽量さとシンプルさを特徴として、自らをマイクロフレームワークと称しています。同じPython系のWebアプリケーションフレームワークの「Django」と比較して、機能面では劣りますが、使いやすさでは勝っていると言えます。シンプルさが売りであるため、Flaskは簡単なものなら数行のコーディングでWebアプリが作成できます。小規模なWebアプリの作成であれば、Flaskで十分事足りるでしょう。
一方のフルスタックフレームワークと称される「Django」は、機能の豊富さが特徴で、Webアプリの開発で必要とされる機能はほぼ備わっています。 多くの機能を覚える必要がある点は面倒ですが、大規模のWebアプリ開発でも自作部分を抑えて効率的に作業が行えるため、結果的に作業工数の大幅カットが可能です。
シンプルさと軽さで選ぶなら「Flask」、機能の豊富さで選ぶなら「Django」という判断になるでしょう。
Flaskを採用するシーン
では実際に、Flaskはどのような場面で採用されることが多いのでしょうか?Flaskはシンプルであること、軽量であることが特徴ですが、その特徴を生かして次のような場面で採用されることが多いです。
1.短納期(2~3日)でのスピード開発が求められている時 2.コストをかけず、複雑な機能やデザインにこだわらないシンプルなWebアプリを求められている時 3. プロトタイプを作成して、デモやシミュレーションに利用したい時
このようなケースではFlaskが向いています。機能がシンプルなだけに、入門編として学ぶのにも適しています。
Flaskの活用例
Flaskを実際に利用して作られたWebアプリケーションについてですが、現在公開されている情報がありません。ここでは、Pythonを利用して作られたサイトの例をいくつかご紹介します。著名なものが多くあり、AIや機械学習が得意とされているPythonは実はWebアプリにも強いことが分かります。
▪YouTube(世界最大の動画サービスサイト) ▪Instagram(写真共有アプリ) ▪DropBox(オンラインストレージサービスのアプリ) ▪Evernote(ドキュメント管理アプリ)
誰もがよく知るアプリやサイトばかりです。
Flaskを利用するメリット
Flaskがよく利用される理由は何でしょうか?それは次のようなメリットを得るためです。ここでは、Flaskの主なメリットを3つ挙げておきます。
動作が軽い
Flaskは「マイクロWebアプリケーションフレームワーク」を謳っている通り、機能を必要最低限にとどめているため、他のWebアプリケーションフレームワークと比較して動きが軽いというメリットがあります。
そのため、それほど機能が求められない単純なWebアプリケーションを作るのに適しています。
機能がシンプルな分、学習しやすい
Djangoのような多機能のフレームワークでは、覚えるべき機能が多い分、学習に時間を要しますが、Flaskでは元々備えられている機能が少ないことから、学習しやすいというメリットがあります。
細かいカスタマイズがしやすい
他のWebアプリケーションフレームワークは、元から備わっている機能をベースにアプリケーションを開発するため、カスタマイズが発生することは少なめです。 一方、Flaskではエンジニアが新たに実装しなければならない機能が多くなり、結果的に標準機能に縛られず、カスタマイズの自由度が高くなります。 FlaskでさくっとWebアプリのベースを作り、後はエンジニアとしての力量を発揮してオリジナリティのあるWebアプリケーションを開発する、といったニーズに応えやすいメリットがあります。
Flaskの学習環境を整える
Flaskを学ぶには最初に学習環境を整える必要があり、学習環境を整えて実際に試してみるとスキルが身に付きます。後ほど初心者向けの入門書を紹介しますが、その前に学習環境を用意してみましょう。 Windows10パソコンとネットワーク環境があるという前提で以下、手順を紹介します。最新のPythonをインストール済の方は、『3:Flaskをインストールする』に進んでください。
Pythonをダウンロードする
まず初めに、Python のダウンロードから行います。
1.Python公式サイト へアクセスします。画面上部に表示されているメニューの中から「Download」にマウスを合わせるとメニューが表示されます。
2.Windows向けのPythonのさまざまなバージョンのダウンロード用リンクが表示されますので、最新バージョンの「最新のPython3リリース-Python3.10.0」をクリックしてください。
3.「Python 3.10.0」のページが表示されたら、ページの1番下、「Windowsインストーラー(64ビット)」をクリックするとダウンロードが開始されますので任意の場所に保存しておきます。
ダウンロードは以上で終了です。
2:Pythonをインストールする
ダウンロードしたファイルをダブルクリックすると、インストーラー画面が起動しますので、「Install Now」の部分をクリックするとインストールが開始されます。「Setup was succesful」と表示されたらインストールは終了です。
3:Flaskをインストールする
Python3系がインストールされた環境でのFlaskのインストールは、非常に簡単です。コマンドプロンプトを起動し、下記のpipコマンドを実行するだけでインストールは完了します。
pip install Flask
4:Flaskの動作確認をする
テキストエディタ(メモ帳)に、次のプログラム本文をコピペして、「hello.py」という名前で保存してください。
-----------------次の行から----------------------------------
from flask import Flask
@app.route("/")
def root():
return "Hello!"
サーバーを起動(コメント行)
app.run(debug=True, port=8888)
------------------この手前まで--------------------------------
プログラムの実行方法ですが、コマンドラインで
python hello.py
と入力すると、Webサーバーが起動します。
次にChromeなどのブラウザを起動して、「http://localhost:8888」 にアクセスしてみましょう。
「Hello!」と表示されたら成功です。
このように、Pythonフレームワークのインストールや実行は非常に簡単なので、不安を抱かずぜひチャレンジしてみてください。
Flaskの入門におすすめのチュートリアルと入門書
では最後に、Flask入門におすすめのチュートリアルと入門書を紹介します。
Flask公式チュートリアル
Flaskのチュートリアルでは、「Flask Documentation」がよく知られています。インストールからクィックスタート・チュートリアル・テンプレート・Flaskアプリケーションのテストなど、基本的な部分から実務面まで幅広くカバーしています。ただし、Pythonの経験がまったくない人には少し難解かもしれません。
Flaskの入門書
▮PythonフレームワークFlaskで学ぶWebアプリケーションのしくみとつくり方は、書籍での学びと体系的に知識を理解することができます。当書では、Flaskを用いたWebアプリ開発の基本を学ぶと同時に、サーバーサイド開発・フロントエンド開発・データベース開発に関連したプログラムの知識も増し、Web開発のスキルアップに役立つでしょう。
Flaskの将来性
結論から述べると、Flaskを利用した開発案件は増加していく可能性が高いと言えます。Pythonそのものの人気が高まっており、それに連れてPythonのWebアプリケーションフレームワークであるFlaskによる開発の需要も上昇していくでしょう。 ただし、Flaskは比較的小規模のシンプルなWebアプリ開発には適していますが、大規模で多機能のWebアプリはDjangoがよく利用されています。せっかくFlaskを習得するのであれば、その次にはぜひDjangoにもチャレンジし、活躍の機会を広げてみてください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから