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でHTTP Error 403: Forbiddenエラーが出た時の対処方法とエラーの意味について

(0)目次&概説 (1) エラー:HTTP Error 403: Forbidden  (1-1) 発生状況・エラーメッセージ  (1-2) 原因  (1-3) 対処方法   (1-3-1) 修正前の …

Azure Machine Learningで「OSError: Could not find kaggle.json」が出た時の原因と対処方法について

  <目次> (1) Azure Machine Learningで「OSError: Could not find kaggle.json」が出た時の原因と対処方法について  (1-1) …

Pythonでcsvを読み込んでデータベース化する方法~pandasのto_sqlを用いたテーブルへのINSERT~

<目次> (1) Pythonでcsvを読み込んでデータベース化する方法  (1-1) 構文(to_sql)  (1-2) 構文(to_sql)の引数  (1-3) サンプルプログラム (1) Pyt …

Pythonパッケージインストール(pip install)をオフラインで行う方法

<目次> (1) Pythonパッケージインストール(pip install)をオフラインで行う方法  (1-1) オフラインインストールとは? (2) オフラインインストールの手順(要Cコンパイルの …

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

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

  • English (United States)
  • 日本語
Top