PROJECT COMPについてお知らせお問い合わせ法人の方はこちら
2022.05.26
記事

Flaskとは?特徴からインストール方法まで初心者向けに解説

avatar皐月萌可
URLをコピーしました

AI開発やWebアプリ開発ができるPythonは、今もっとも注目を集めているプログラミング言語です。『Flask』は、そのPython開発を行うWebアプリケーションフレームワークとしてとても人気があります。初心者からベテランまで様々な人に使用されているため、Pythonエンジニアならば押さえておきたいフレームワークです。

当記事では、Flaskの概要、特徴、メリットデメリット、インストール方法などを紹介します。初心者向けに基本から丁寧に解説しますので、ぜひ最後までご覧ください。

Flaskってどんなフレームワーク?

Flask(フラスク/フラスコ)は、PythonのWebアプリケーションフレームワークの1つです。ここでは、Flaskの基本情報や人気度について解説します。

Flaskの起源と基本情報

Flaskは、アーミン・ロナッチャー氏が2010年4月1日に発表したWebアプリケーションフレームワークです。エイプリルフールのジョークとして発表したのがきっかけですが、今では多くの人に愛用されています。

機能が最小限で身軽なことから、Flaskは「マイクロフレームワーク」と呼ばれています。覚えるべき機能が少ないため、初心者でも簡単に扱うことが可能です。Pythonには他にも「Django」や「bottle」などのフレームワークがありますが、Flaskはその中でも特に自由度が高いと言えます。

Flaskは世界でも人気のフレームワーク

Python Software Foundationが実施し、28,000人以上のPython開発者・愛好家が回答したアンケートによると、Flaskがもっとも人気の高いフレームワークとなっています。シンプルで柔軟な開発ができる使い勝手の良さが人気の理由でしょう。

screen

Flaskを使用している企業も多くあります。人気動画配信サービス「Netflix」や宿泊施設予約サイト「torivago」、アメリカの投稿型ソーシャルサイト「reddit」など、様々な企業がFlaskを活用して開発を行っています。

Flaskでできることとは?

Flaskは人気が高いフレームワークですが、どのような場面で活用すればよいのでしょうか。ここでは、Flaskの特徴や搭載機能、メリットデメリットについて解説します。

Flaskの特徴

Flaskはあらかじめ実装されている機能が少ないため、自由度が高く動作が軽いことが最大の特徴です。以下では詳しく特徴を解説します。

カスタマイズ性が高い

Flaskでは、自分好みに機能をカスタマイズすることができます。他のフレームワークはある程度型が決まっており、自分で考える余白が少ないですが、Flaskは自分でライブラリを組み込んで自由なシステム開発が可能です。この自由度の高さによって、システム開発の幅を広げることができます。

処理速度が高速

Flaskは機能が少なく身軽なため、処理速度が高速です。様々な機能が搭載されていると処理が重くなってしまいますが、Flaskはスムーズで快適な動作が実現できます。そのため、ユーザーにとっても使いやすいシステムを提供できます。

Flaskが搭載している機能

Flaskが標準で搭載している機能には、以下の3つがあります。どの機能もシステム開発を行うときに使うもっとも基本的な機能のため、Flaskがとてもシンプルなフレームワークだということがおわかりいただけるでしょう。

ルーティング

ルーティングとは、実行したいページとURLを紐づけることです。下記の図のように、Flaskで指定するURLに応じて、表示される画面を変えるときに使用します。

screen

リクエスト処理

リクエスト処理とは、画面遷移を行うときに実行される処理のことです。WebブラウザでURLを入力したり、リンクを押したりしたときに「リクエスト(要求)」が送信され、それに対して「レスポンス(応答)」が返されます。

screen

Blueprint

Blueprintとは、アプリケーションの機能を複数のモジュールに分割する機能です。1つのメインファイルにソースコードを記述すると、長くなって管理しにくくなりますが、Blueprintで機能ごとにモジュールを分割すれば、保守がしやすくなります。

Blueprintを使用すると、以下のようにサイトを分割管理できます。

【分割前のWebサーバー】
http://www.〇〇〇/

【Blueprintを使用してサイトを分割】
http://www.〇〇〇/site-a
http://www.〇〇〇/site-b
http://www.〇〇〇/site-c

Flaskのメリット・デメリット

Flaskはシンプルで扱いやすい点がメリットですが、大規模なシステム開発の際にはデメリットになる場合もあります。以下では、Flaskの具体的なメリット・デメリットについて解説します。

Flaskのメリット

Flaskは最低限の機能しか搭載していないため、覚えることが少なく学習しやすい点がメリットです。動作が軽く、シンプルな機能のアプリケーション、管理画面など、コンパクトなシステムを作ることに適しています。

使い始めるまでのハードルが低いのもFlaskの良さです。面倒なセットアップが必要なく、Flaskをインストールして数行のコードを実行するだけで起動できます。

Flaskはシンプルでとっつきやすいため、初心者にもおすすめのフレームワークです。

Flaskのデメリット

Flaskは最初に搭載されている機能が少ないため、必要な機能は自分で追加しなければなりません。どのライブラリを追加するべきかを自分で判断する必要があるため、開発工数がかかります。

また、自由なカスタマイズ性は便利な反面、機能の拡張しすぎには注意が必要です。Flaskの持ち味である高速な処理が実現できず、使いにくくなってしまいます。

大規模なシステムを開発する場合は、他のフレームワークを検討する必要があるでしょう。

Flaskを実際に使ってみよう

Flaskのインストール方法や、学習方法を紹介します。Flaskの導入は複雑な作業が必要ないため、すぐに使い始めることができます。

Flaskのインストール方法

Flaskを使用するための手順について、以下の順番で解説します。

  • Pythonのインストール
  • 仮想環境の構築
  • Flaskのインストール
Pythonのインストール方法から解説していますが、すでにインストール済みの方は飛ばしていただいて構いません。

Pythonのインストール

まずはPython公式サイトにアクセスし、メニューの「Downloads」タブから最新バージョンのファイルをダウンロードしましょう。

screen
(参照:Python.org

*Macの場合は「Download for macOS」と記載されています

ダウンロードしたファイルをダブルクリックすると、インストーラーが起動します。「Add Python 3.10 to Path」をチェックし、「Install Now」をクリックするとインストールが開始します。

screen

「Setup was succesful」の表示が出たらインストールは完了です。

仮想環境の構築

次に、開発環境の独自性を保つために仮想環境を構築します。コマンドプロンプトを起動し、下記のコマンドでvirtualenvをインストールしましょう。

pip install virtualenv
任意の場所に開発用のフォルダを作成し、仮想環境を構築します。ここでは、「project」というフォルダを作成し、そこに仮想環境「venv」を構築します。
mkdir project
cd project
virtualenv venv
構築できたら、下記のコマンドで仮想環境を有効化します。
(Windows)
venv\scripys\activate

(Mac)
source venv/bin/activate
以上で、仮想環境の構築は完了です。

Flaskのインストール

Flaskのインストールはとても簡単です。コマンドプロンプトで下記のコマンドを実行しましょう。

pip install Flask
下記のコマンドでバージョンが表示されればインストールは完了です。
flask --version

Flaskの学習方法

Flaskを学べる学習サイトについて紹介します。自分に合った学習方法を選択して、効率よく学習しましょう。

Flask公式チュートリアル

Flask公式チュートリアルでは、ブログアプリケーションの作成方法を詳しく解説しています。PythonとFlaskだけ使用し、追加でライブラリを導入しなくても開発できる内容です。ただし、Pythonに触れたことがある前提で解説されているため、初心者には少し難しい内容となっています。 (参照: チュートリアル — Flask Documentation (2.0.x)

Udemy

Udemyは、買い切り型の動画学習サイトです。Flaskに関する講座が豊富にあります。定価だと少し高額ですが、頻繁に行っているセールを狙えば安く購入することもできます。1つの講座で基本からアプリ開発まで解説している講座もあるため、初心者におすすめです。 (参照: Udemy

Paizaラーニング

Paizaラーニングは、動画でプログラミング学習ができるサイトです。3分ほどの短い動画のため、無理なく学習を続けられます。環境構築なしでプログラミングを行えるため、面倒な準備が必要ありません。無料で公開している動画もありますので、まずはどんな講座内容なのか確認してみてはいかがでしょうか。 (参照:Webアプリ開発入門 Flask編のレッスン一覧 | プログラミング学習サービス【paizaラーニング】

まとめ

Flaskは、学習コストが低く、自由度の高いフレームワークです。世界でも人気が高く、今後ますます需要が伸びることが予想されます。Flaskを使用している企業もたくさんあるため、使いこなすことができればPythonエンジニアとしての自分の価値を高めることができるでしょう。

エンジニア向け給与データサービス
PROJECT COMP は、匿名性を重視した
ユーザ参加型の給与統計データベースサービスです