Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Python

PythonのFlaskフレームワークを用いたRest APIのサンプル

投稿日:2022年3月24日 更新日:

 

<目次>

(1) PythonのFlaskフレームワークを用いたRest APIのサンプル
 (1-1) Flaskとは
 (1-2) STEP1:Flaskフレームワークの導入
 (1-3) STEP2:Rest APIの実装
 (1-4) STEP3:起動確認
 (1-5) STEP4:疎通テスト

(1) PythonのFlaskフレームワークを用いたRest APIのサンプル

(1-1) Flaskとは

FlaskはPythonでWeb APIを開発する際に広く使用されている、マイクロWebフレームワークです。非常にシンプルながら色々できて、素早く拡張性の高いアプリ開発ができます。
 

(1-2) STEP1:Flaskフレームワークの導入

pipコマンドを使ってFlaskをインストールします。
 
(コマンド)
> pip install Flask
 
(正常終了メッセージ)
Successfully installed Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 colorama-0.4.4 flask-2.0.2 itsdangerous-2.0.1
(図111①)

「from flask import Flask」等でFlaskが利用可能に
(図111②)
目次にもどる

(1-3) STEP2:Rest APIの実装

Flaskがインストール出来たら、早速Rest APIのプログラムを作ります。下記はHello World用のサンプルコードです。
 
(サンプル概要)
ローカルPC上のポート5000番にてFlaskアプリが起動され、URL「http://172.20.10.3:5000/hello/」にGETかPOSTでアクセスした際に「Hello World」を返却するような簡単なAPIのプログラムです。
 
(サンプルPG)
# Flaskクラスのインポート
from flask import Flask
# Flaskクラスのインスタンス生成
app = Flask(__name__)
# route()デコレーターを用いて、どのURLで処理を実行するか?をFlaskに教えています
# methodsはどのHTTPメソッドを許可するか?を設定しています(デフォルトは['GET'])
@app.route('/hello/', methods=['GET', 'POST'])

def helloworld():
    return "Hello World!"

# __name__はPythonにおいて特別な意味を持つ変数です。
# 具体的にはスクリプトの名前を値として保持します。
# この記述により、Flaskがmainモジュールとして実行された時のみ起動する事を保証します。
# (それ以外の、例えば他モジュールから呼ばれた時などは起動しない)
if __name__ == '__main__':
    # Flaskアプリの起動
    # →Webサーバが起動して、所定のURLからアクセス可能になります。
    # →hostはFlaskが起動するサーバを指定しています(今回はローカル端末)
    # →portは起動するポートを指定しています(デフォルト5000)
    app.run(host='0.0.0.0', port=5000)
(図121①)

(1-4) STEP3:起動確認

上記プログラムについて、実際にFlaskアプリを起動してみて、想定結果の通りになるか確認してみます。
 

①Pythonファイルを保存して実行します。

(A)Visual Studio Codeをお使いの場合
→右上の実行ボタンを押下します。
 
(図131①)

(B)テキスト等で作っている場合
→保存して、コマンドプロンプト等から「python [ファイル名].py」で実行します。
 
(図131②)Visual Studio Code内でPowerShellのウィンドウを開いて実行する例

②Flask起動確認

正常に起動したら、以下のようなメッセージが表示されます。このメッセージが確認出来た時点で、FlaskアプリはローカルPC上では実行されており、所定のURLに対してhttpリクエストを待ち受ける状態になっております。
 
* Running on http://172.20.10.3:5000/ (Press CTRL+C to quit)
 
(図131③)

(参考)出力メッセージ全文
* Serving Flask app '__init__' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on all addresses.
   WARNING: This is a development server. Do not use it in a production deployment.
 * Running on http://172.20.10.3:5000/ (Press CTRL+C to quit)
 

(1-5) STEP4:疎通テスト

ブラウザを起動して、先ほどコンソールに表示された起動URLを入力して「Hello World!」が表示されるか?を確認します。
 
確認URL:http://172.20.10.3:5000/hello/
 
(図141①)

Adsense審査用広告コード


Adsense審査用広告コード


-Python

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

PythonのTkinterでテキストボックスの値を取得する方法

<目次> (1) PythonのTkinterでテキストボックスの値を取得する方法  (1-1) 構文  (1-2) キャンバスの設定  (1-3) 入力ボックスの追加  (1-4) ボタン押下時の処 …

Azure FunctionsでPythonのライブラリを追加する方法(依存関係解決)

  <目次> (1) Azure FunctionsでPythonのライブラリを追加する方法(依存関係解決)  (1-1) requirement.txtの設定手順  (1-2) 補足事項 …

Pythonでcsvのカラム名を変更する方法(Pandasのread_csvで読み込んだcsvのカラム名変更)

<目次> (1) Pythonでcsvのカラム名を変更する方法  (1-1) 構文①  (1-2) サンプルプログラム①  (1-3) 構文②  (1-4) サンプルプログラム② PythonのPan …

Anacondaのインストール手順(Windows 10の例)

  <目次> (1) Anacondaのインストール手順(Windows 10の例)  (1-1) STEP1:インストーラーの入手と起動  (1-2) STEP2:インストール  (1-3 …

no image

Pythonでランダムな座標データを生成する方法

  <目次> (1) Pythonでランダムな座標データを生成する方法  (1-1) 使う構文  (1-2) サンプルプログラム  (1-3) 補足:データの座標を全体的にシフトしたい場合 …

  • English (United States)
  • 日本語
Top