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

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

関連記事

pyenvの使い方(基礎編)をご紹介

  <目次> (1) pyenvの使い方(基礎編)をご紹介  (1-1) STEP1:インストール系のコマンド  (1-2) STEP2:バージョンの適用/切り替え系のコマンド  (1-3) …

Pythonで「ERROR: Could not install packages due to an OSError: [WinError 2]」が出た時の原因と対処方法について

  <目次> (1) Pythonで「ERROR: Could not install packages due to an OSError: [WinError 2]」が出た時の原因と対処 …

PythonのdatapackageとSQLAlchemy、SQLiteを使ってcsvデータをSELECTする

(0)目次&概説 (1) 今回の目的  (1-1) 目的  (1-2) 前提条件 (2) 実施手順  (2-0) 事前作業  (2-1) データ(csv)のロード  (2-2) エンジンの作成  (2 …

「pyenv」の導入後も「System Python」が有効になってしまう事象の原因と対処について

  <目次> (1) 「pyenv」の導入後も「System Python」が有効になってしまう事象の原因と対処について  (1-1) 問題点の整理  (1-2) 原因&対策(1つ目)  ( …

PythonにOpenCVを導入して画像を読込み&表示&拡大縮小してみる

(0)目次&概説 (1) OpenCVとは (2) OpenCVのインストール  (2-1) インストール資源の入手  (2-2) インストール時の注意事項  (2-3) インストールの実行 (3) …

  • English (United States)
  • 日本語
Top