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でSQLAlchemyを使ってOracleDBに接続する方法

(0)目次&概説 (1) 記事の目的  (1-1) 目的  (1-2) 前提条件 (2) 事前準備  (2-1) 準備1(cx_oracleパッケージの導入)   (2-1-1) インストール資源の入 …

PythonのSQLAlchemyで「Identifier ‘XXX’ exceeds maximum length of 30 characters」エラーや「DtypeWarning: Columns (X) have mixed types.」警告が出た時の対処について

(0)目次&概説 (1) エラー1:sqlalchemy.exc.ArgumentError  (1-1) 発生状況・エラーメッセージ   (1-1-1) エラーメッセージ   (1-1-2) エラー …

Pythonのコンストラクタの基礎と「self」や「__init__」について

<目次> (1) Pythonのコンストラクタの基礎と「self」や「__init__」について  (1-1) 「__init__」やコンストラクタについて  (1-2) コンストラクタで使われる「s …

Python3.5&Anaconda4.2のインストール手順(CentOS6)とHelloWorldの方法

(0)目次&概説 (1) インストール資源の入手  (1-1) ディストリビューション  (1-2) GitHubのpyenvのリポジトリのコピーを取得する (2) インストールの実施  (2-1) …

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

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

  • English (United States)
  • 日本語
Top