dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

flask でのパラメータ取得

2022-06-03 23:41:00 | python
flask でのパラメータ取得方法のメモ。

GET、POST でのパラメータの取得と、ファイルの受信方法をまとめてみました。

■GET
プログラム
import sys
from flask import Flask, request

app = Flask(__name__)

@app.route('/', methods=["GET"])
def view_get():
    var1 = request.args.get('var1', '')
    return f'''var1={var1}\n'''

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)


リクエスト
curl -X GET 'http://localhost:8080/?var1=foo'


レスポンス
var1=foo


■POST
プログラム
import sys
from flask import Flask, request

app = Flask(__name__)

@app.route('/', methods=["GET", "POST"])
def view_get():
    if request.method == "GET":
        val1 = request.args.get('var1', '')
        val2 = request.args.get('var2', '')
    elif request.method == "POST":
        val1 = request.form.get('var1', '')
        val2 = request.form.get('var2', '')

    return f'''var1={val1}\nvar2={val2}\n'''

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)


リクエスト
curl 'http://localhost:8080/' \
     -X POST \
     -F 'var1=foo' \
     -F 'var2=bar'


レスポンス
var1=foo
var2=bar


■ファイルの受信
プログラム
import sys
from flask import Flask, request

app = Flask(__name__)

@app.route('/', methods=["POST"])
def view_get():
    val1 = request.form.get('var1', '')
    val2 = request.form.get('var2', '')
    file1 = request.files.get('file1')

    bytes = file1.stream.read()
    str = bytes.decode('utf-8')

    return f'''var1={val1}\nvar2={val2}\nfile1={str}\n'''

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)


リクエスト
curl 'http://localhost:8080/' \
     -X POST \
     -F 'var1=foo' \
     -F 'var2=bar' \
     -F 'file1=@file.txt'


レスポンス
var1=foo
var2=bar
file1=abc


この記事についてブログを書く
« BigQuery でデータを JSON 化... | トップ | Elasticsearch 8.X を http ... »

python」カテゴリの最新記事