0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Flask基本メモ

Posted at

はじめに

 私は、時々Flaskを使うのですが、使い方をよく忘れてしまうので、ここにメモをしておきます。

レスポンスを受け取るまで

インストール

 まず、Flaskをインストールします。以下のコマンドを打ち込むだけで良いです。

$ pip install Flask

ファイル

 次に適当にサーバの動作を行うファイルを作ります。以下に示すのは、必要最低限の動作を行うものです。

app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "hello"

if __name__ == "__main__":
    app.run(debug=True)

サーバの稼働

 そして次のコマンドをこのファイルが存在するディレクトリ上で打ち込みます。

$ python app.py

これでhttp://localhost:5000にアクセスするとhelloと帰ってくるようになりました。

基本の関数の使い方

@app.route(URL, methods)

これはその後に来る関数をリクエストが来た際に走らせるようにするラッパーです。リクエストを受け取る場合は必ず使います。引数はそれぞれ、
URL: リクエストを受け取るURLのroute
methods: リクエストのメソッド
使い方としては以下のようなものがあります。また、URLから直接変数を得る方法などもあります。

基本的な使い方

# http://localhost:5000/hogeにGETリクエストを送ることで動く
@app.route("/hoge", methods=["GET"])
def hoge():
    # ここで処理が行われる

URLから変数を取得する

FlaskではURLの文字列をデータとして取り込むことができます。例えば以下の例では、http://localhost:5000/hoge/fugaに対してGETメソッドを送ると、「hello! fuga」と返ってきます。

@app.route("/hoge/<text>", methods=["GET"])
def hello(text):
    return "hello! " + text

app.run(host, path, debug)

 ここではアプリの稼働を行います。それぞれの引数は、
host: アプリを稼働するipアドレス、デフォルトはlocalhost
port: アプリにアクセスできるポート、デフォルトは5000
debug: Trueの時はアプリ稼働時にデバッグ出力を行う

これらを使って、変更を加えるとしたら、以下のような感じになります。

app.run(host="0.0.0.0", port=8080, debug=True)

hostを上のように設定しておくことで、外部のデバイスからでもこのコードを走らせているPCのアドレスが分かれば、アクセスできるようになります。

jsonの取り扱い

リクエストで受け取る方法

 リクエストでjsonを受け取る時には、jsonモジュールを使用します。

from flask import Flask
import json

@app.route("/", methods=["POST"])
def hoge():
    req_data = json.loads(request.data)
    return req_data["hoge"]

json.loads関数を用いることで、jsonのデータを配列や辞書などのpythonで扱える形に変換しています。

レスポンスで出力する方法

 レスポンスにjsonを含める場合には、Flaskのjsonify関数を使用します。

from flask import Flask, jsonify

@app.route("/", methods=["GET"])
def hoge():
    res_data = {"json_data": "hogehoge"}
    return jsonify(res_data)

 基本的にはデータをjsonifyで包んで送るだけです。

最後に

 何か間違いや、足りない部分などがあれば教えていただけるとありがたいです。また、質問なども受け付けます。 

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?