【Flask】簡易サーバーを作成する方法

概要

flaskモジュールを使用して簡易的なサーバーをローカルに作成したので、その方法についてまとめる。
flaskとは、PythonのWEBアプリケーションフレームワークの一つ。

 

flaskの使用方法

ライブラリのインストール

flaskはimportするだけだと使用できない。
以下のようにライブラリをインストールする必要がある。(※jupyter labでは以下をセルに記述して、【Shift + Enter】で実行可能)

jupyter labターミナル


pip install flask

 

全体像

main01.py


import json
from flask import Flask
app = Flask(__name__)

@app.route("/")
def index():
    """ ブラウザに「Hello World」と表示 """
    return "Hello World"

@app.route("/json")
def hello_world():
    """ jsonを返却するサンプル """
    res_dict = {
        "id": 1,
        "data": [
            {
                "user_id": 1,
                "name": "yamada",
                "age": "26"
            }
        ]
    }
    return json.dumps(res_dict)
    
if __name__ == '__main__':
  app.run(port=8080, debug=True)

解説

前提としてflaskを実行するためにはPythonファイル(拡張子:.py)を作成する。
jupyter lab上で実行してしまうと、サーバーを停止する方法(後述)がシンプルではないため。

 

準備

main01.py


from flask import Flask
app = Flask(__name__)

上記はflaskフレームワークを使用する際の慣習と思っていい。
flaskをインポートして、Flaskオブジェクトを生成している。

 

ルーティング

以下の形式でルーティングを定義する。

@app.route(“URL”)
URLに指定したパスを設定することで、ブラウザからのURLリクエストに紐づけることが可能。

main01.py


@app.route("/")
def index():
    """ ブラウザに「Hello World」と表示 """
    return "Hello World"

@app.route("/data")
def get_data():
    """ jsonを返却するサンプル """
    res_dict = {
        "id": 1,
        "data": [
            {
                "user_id": 1,
                "name": "yamada",
                "age": "26"
            }
        ]
    }
    return json.dumps(res_dict)

 

@app.route(“/“)
上記は「http://ドメイン名/」というURLを表す。
基本的にはローカルの端末のドメイン名はlocalhostなので、「http://localhost:ポート番号/」という意味になる。
このURLはindexメソッドに紐づいており、ブラウザに「Hello World」を返却する。
@app.route(“/data”)
上記はget_dataメソッドに紐づいており、JSON文字列を返却する。
WEB APIなどのモックとして使用できそう。
あわせて読みたい

概要 jsonモジュールを使用してデータ変換やファイル読み書きを行う方法についてまとめた。前提としてファイルオブジェクトの操作が必要になる。

if __name__ == ‘__main__’:
app.run(port=8080, debug=True)

上記を記述することで、Pythonファイルを実行した際にサーバーが起動する
ポートは「8080」でデバッグモードにて起動するという意味。

 

サーバーの起動

作成したPythonファイルのパスまでコマンドプロンプトを起動して、Pythonファイルを実行するコマンドをたたく。

jupyter labターミナル


python main01.py(※main01.pyの箇所は、自身が作成したファイル名)

 

ブラウザからリクエスト

【URL:/】にアクセス

ブラウザのURLに「http://localhost:8080/」と入力して実行すると、ブラウザに「Hello World」と表示される。

 

【URL:/data】にアクセス

ブラウザのURLに「http://localhost:8080/data」と入力して実行すると、ブラウザにJSON文字列が表示される。

 

サーバーの停止

コマンドプロンプトにて、【CTRL+C】を押すとサーバーは停止する。
※以下のようにサーバー起動時に「Press CTRL+C to quit」と停止方法について説明がある

 

スポンサーリンク