Web アプリケーションサーバー Sgskip

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このチュートリアルの実験では、Flask の Web アプリケーションサーバーで Matplotlib を使用する方法を案内します。.Figure コンストラクタを使ってグラフを作成し、メモリ内のバッファに保存し、生成されたグラフを HTML 出力に埋め込み、flask コマンドラインツールを使って Flask アプリケーションを実行する方法を学びます。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション終了後にフィードバックを提供してください。すぐに問題を解決いたします。

依存関係のインストール

始める前に、必要なパッケージがインストールされていることを確認してください。pip を使ってインストールできます。

pip install matplotlib flask

依存関係のインポート

このステップでは、必要な依存関係をインポートします。画像データをエンコードするために base64 を、画像データをメモリに保存するために BytesIO を、Web アプリケーションサーバーを作成するために Flask を、グラフを作成するために Figure を使用します。

import base64
from io import BytesIO

from flask import Flask

from matplotlib.figure import Figure

Flask アプリケーションの作成

このステップでは、Flask アプリケーションを作成します。ホームページ ("/") 用のルートと、Matplotlib のグラフを生成して埋め込む関数を定義します。

app = Flask(__name__)

@app.route("/")
def home():
    ## pyplot を使わずにグラフを生成します。
    fig = Figure()
    ax = fig.subplots()
    ax.plot([1, 2])
    ## 一時的なバッファに保存します。
    buf = BytesIO()
    fig.savefig(buf, format="png")
    ## 結果を html 出力に埋め込みます。
    data = base64.b64encode(buf.getbuffer()).decode("ascii")
    return f"<img src='data:image/png;base64,{data}'/>"

Flask アプリケーションの実行

このステップでは、flask コマンドラインツールを使って Flask アプリケーションを実行します。作業ディレクトリにこのスクリプトが含まれていると仮定して、次のコマンドを実行してサーバーを起動します。

FLASK_APP=matplot_lib_tutorial_lab flask run

出力を表示する

このステップでは、Web ブラウザで http://localhost:5000/ に移動することで、Flask アプリケーションの出力を表示します。Matplotlib のグラフがページに表示されるはずです。

まとめ

このチュートリアルの実験では、Flask の Web アプリケーションサーバーで Matplotlib を使う方法を学びました。Flask アプリケーションを作成し、Matplotlib のグラフを生成し、グラフを HTML 出力に埋め込み、flask コマンドラインツールを使って Flask アプリケーションを実行しました。