Python Flask は、Python で Web アプリケーションを構築するためのマイクロフレームワークです。
非常に柔軟でカスタマイズ可能なフレームワークなので、学習が簡単になります。そのため、Web サーバーを構築する際には、これが一般的な選択肢となります。この記事では、Python Flask とは何か、他のフレームワークとの比較、Python で基本的なアプリケーションを作成する方法について紹介します。
フラスコとは何ですか?
Flask は 、Python で Web サーバーを構築するためのフレームワークです。他のフレームワークとは異なり、開発者が特定のディレクトリ構造に従うことを強制されません。
さらに、これには偏見がないため、データベースへの接続やフォーム入力の検証などのアクションを実行するために、好みのツールを使用できます。
前述したように、Flask は Web サーバーの構築に使用されます。 Web サーバーは、HTTP リクエストに適切なデータとファイルで応答するソフトウェアです。
Flask と他のフレームワーク
このセクションでは、Flask を他の 2 つの人気のあるフレームワーク (Django および Fast API) と簡単に比較します。他のフレームワークと比較して Flask を使用する利点と制限について説明します。
フラスコ対ジャンゴ
Flask は軽量のマイクロフレームワークです。開発者にシンプルさと柔軟性を提供し、やりながら構築できるようにします。ただし、これは自分で多くの作業を行わなければならないことを意味します。
一方、Django は、多くの事前構成ツールが付属する「バッテリー付属」フレームワークです。これにより、より迅速に構築して出荷できるようになります。ただし、Django は柔軟性があまり高くなく、学習曲線が急になります。
結果として、Flask は小規模および中規模のプロジェクトに使用され、Django はより大規模で複雑なプロジェクトに使用されます。
こちらもお読みください: Flask と Django の違い
Flask と FastAPI の比較
FastAPI は、Python で API を構築するための比較的新しいフレームワークです。速くて使いやすいです。機能として組み込みのモニタリングを提供します。ただし、これは比較的小規模なエコシステムとコミュニティを備えた新しいフレームワークです。また、その使用は API に限定されます。
対照的に、Flask は API と静的ファイルのレンダリングの両方に使用できるため、より多用途です。軽量で比較的簡単です。ただし、FastAPI よりも遅くなります。
Flask は HTML をレンダリングする必要がある Web アプリケーションに最適ですが、API の構築には FastAPI を使用する必要があります。
こちらもお読みください: FastAPI と Flask: どちらがあなたに適していますか?
Flask でアプリケーションを作成する方法
このセクションでは、HTML を表示し、API を通じてデータを提供する単純な Flask アプリを構築します。この目的は、Flask に包括的なチュートリアルを提供することではありません。むしろ、Flask アプリの構築がどのようなものかを簡単に示すことが目的です。
前提条件
このチュートリアルに従うには、Python 3 を理解する必要があります。また、必須ではありませんが、HTTP に精通していると役立ちます。
Flask でアプリケーションを作成するには、まず Python をインストールする必要があります。その方法についてのガイドが必要な場合は、次のビデオを参照してください。
仮想環境を作成する
まず、アプリケーションのプロジェクト フォルダーを作成します。私は Bash ターミナルでコマンドを実行しています。したがって、次のコマンドを使用してフォルダーを作成します。
mkdir flask-tut
次に、次のコマンドを使用してフォルダー内に移動します。
cd flask-tut
フォルダーに移動した後、このコマンドを使用して仮想環境を作成します。これにより、インストールする依存関係が他のプロジェクトの依存関係と競合しないことが保証されます。
python3 -m venv venv
これにより、
venv
フォルダーが作成されます。これは次のコマンドで確認できます。
ls

仮想環境のアクティブ化
仮想環境のアクティブ化は簡単です。 Bash ターミナルを使用して、次のコマンドを入力します。
source venv/bin/activate
ターミナルのプロンプトが this
$
から this
(venv) $
に変わるはずです。
詳細については、Python の仮想環境に関する記事をご覧ください。
Flask をインストールする
仮想環境を使用して、Flask のインストールに進むことができます。そのために、pip を使用します。
pip install Flask
これにより、いくつかのファイルがダウンロードされ、依存関係がインストールされるはずです。

HTML の提供
次に、
main.py
ファイルの作業を開始できます。このファイルはアプリケーションのエントリ ポイントになります。
touch main.py
main.py ファイルを作成した後、任意のエディターでファイルを開き、次のコードを追加します。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return '<h1>Hello from Flask!</h1>'
上記のコード スニペットでは、Flask クラスをインポートすることから始めました。次に、
__name__
変数を渡して、Flask クラスをインスタンス化しました。これは、現在のモジュールの名前を格納する組み込み変数です。 Flask はファイルの場所を知るためにこれを必要とします。 Flask のインスタンスを app 変数に保存しました。
次に、index という関数を作成しました。この関数は、ユーザーに表示したい HTML を返します。関数を定義する前に、@app.route デコレーターを使用しました。このデコレーターは、通常の関数を Flask ビュー関数に変換します。これは、関数の戻り値が HTML 応答に変換されることを意味します。
アプリケーションを実行するには、次のコマンドを使用します。
flask --app main run
–app フラグは、アプリケーションの場所を指定します。この場合、main.py にあります。サーバーが実行を開始するはずです。

http://localhost:5000 または http://127.0.0.1:5000 でブラウザを開くと、h1 が表示されるはずです。

すべての HTML を Python コードで記述することは、一般に良くありません。理想的には、Python を HTML から分離したいと考えます。次のセクションでは、スタンドアロン HTML ファイルを提供する方法について説明します。
HTML ファイルの提供
このセクションでは、Web サイトの Index.html ファイルを提供するコードを作成します。まず、index.html ファイルを作成しましょう。 Flask が HTML テンプレートを検索する場所であるため、テンプレート フォルダー内にこのファイルを作成します。
touch template/index.html
次に、任意のエディターを使用してファイルを開き、次のコードを追加します。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Flask Website</title>
</head>
<body>
<h1>Hello from Flask!</h1>
</body>
</html>
次に、前に作成した main.py ファイルを再度開きます。次に、次のインポートを上部の Flask インポートの直後に追加します。
from flask import render_template
インポートしたばかりの render_template 関数を使用すると、HTML テンプレートを提供できるようになります。 HTML ファイルをレンダリングするには、index 関数を次のように変更します。
@app.route("/")
def index():
return render_template('index.html')
サーバーを停止し (Ctrl + C)、次のコマンドを使用して再起動します。
flask --app main run
ブラウザ ウィンドウをリロードすると、次の内容が表示されるはずです。

この例では、静的な HTML ページを表示しています。 Flask では、HTML テンプレートを作成してデータを提供することで、テンプレートを表示することもできます。これらのテンプレートは、Jinja 構文に従います。簡潔にするためにここではこれについては説明しませんが、後で Flask を学習するためにいくつかの優れたリソースをリンクします。
APIルートの作成
HTML コンテンツの表示は、Web アプリケーションの機能の 1 つです。もう 1 つは、API ルートを通じてデータを提供することです。 Flask では、API ルートの設定も簡単です。このコードを main.py ファイルに追加して、「/data」に API ルートを作成します。
@app.route('/data')
def data():
return { "status": "OK", "msg": "Hello from Flask API" }
関数が辞書またはリストを返す場合、値は JSON に変換され、応答として送信されます。サーバーを再起動して http://localhost:5000/data を開くと、次の内容が表示されるはずです。

Flask を学ぶためのリソース
❇️ Flask ドキュメント は学習に最適です。これはよく構造化されており、明確であり、おそらく Flask を学習するための最も信頼できるリソースです。
❇️ freeCodeCamp には Flask に関する 素晴らしい YouTube ビデオ もあります。 freeCodeCamp は、無料でありながら高品質の学習リソースとしてよく知られています。
❇️ この Udemy コースは、 Flask でエンタープライズグレードの API を構築する方法を学ぶのに最適な方法です。 Flask-SQLALchemy や Flask-Smorest などのツールについて説明します。
結論
この記事は、Python Flask の簡単な紹介でした。これが何であるかを説明し、他の Web フレームワークと比較し、簡単なアプリケーションを構築しました。最後に、さらなる学習のためにリソースをリンクしました。
次に、JSON Web トークンを使用して Flask REST API を保護する方法を確認してください。