Python のWebアプリフレームワーク flask でお手軽WebAPI構築(後編) | SiTest (サイテスト) ブログ

メニューボタン閉じるボタン

Python のWebアプリフレームワーク flask でお手軽WebAPI構築(後編)

Flaskの紹介、今回は実践編です

前回、flask の紹介を軽く行いました、今回は、flask を使って、簡単な WebAPI を作ってみようと思います。

スポンサーリンク

では、早速 flask をインストールしてみます。今回は virtualenv を使って環境を構築しています

(flaskdemo) akashi-no-MacBook-Air:flaskdemo furuichitanaka$ pip install flask
(前略)
Successfully installed Jinja2-2.9.6 MarkupSafe-1.0 Werkzeug-0.12.1 click-6.7 flask-0.12.1 itsdangerous-0.24

無事インストールされました。flask 本体以外にもいろいろインストールされました。中でも、HTML テンプレートである jinja2 は、今回は使用しませんが、用途によっては大変便利です。

実際のコード

インストールが終わったら、下記のような内容でinit.pyファイルを作成します。本家のチュートリアルの一番最初のコードを、少し実践的に書き直してみました。
WebAPI のルートにアクセスすると、’Hello flask’という文字列が返ります。/userにgetリクエストを送るとクエリで id を指定した user の json が返ってきます。
下記のコードをみればわかるように、
Flask クラスにある route メソッドにエンドポイントを指定してやるだけで、簡単に WebAPI を作成することができます!

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/')
def index():
   return 'Hello flask'

@app.route('/user')
def user():
   user_id = request.args.get('id')
   return search_user(user_id)
def search_user(user_id):
   # 例えばここに、DBからユーザを取得する処理を書くなどできます
   # 今回はひとまずユーザデータのJSONを固定値で書いてみます
   user = {
    'id': user_id,
    'name': 'Tarou',
    'age': 23
   }
   return jsonify(user)
if __name__ == '__main__':
    app.run()

では立ち上げてみましょう。といってもただ、pythonでinit.pyを実行しするだけですが…

(flaskdemo) akashi-no-MacBook-Air:webpage furuichitanaka$ python init.py
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

立ち上がりましたね。では、アクセスしてみましょう
まずは、ルートからです。

続いて、/userにアクセスしてみます。クエリにidを指定してあげます。

こちらも、無事に json 文字列ができました。

このように、 flask を使えば、簡単に WebAPI を作ることができるので、ぜひ活用してみてください。


03-6441-3336

いますぐ無料で
お試しください。

SiTestの革新的な機能を、
1か月間無料でお試しいただけます。

お名前【必須】
メールアドレス【必須】
電話番号【必須】

利用規約はこちら