12億円ほしい人のブログ

メガBIG当たらないかな

Flaskのリクエストの情報の取り出されるかについてのメモ

Flaskのrequestについての妄想メモです。

flask.requestについて

以下のようなコードを例とします

from flask import Flask, request

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def index():
    user_email = request.form['user_email']
    # 以下省略

このとき、requestには、クライアントから送られたリクエストの情報が入っています。
ただ、コードを単純に見るとrequestはimportされてそのまま利用されているだけで、特にリクエストの情報を入れているようには見えません。
そのため、requestNoneであるように見えます。
しかし、当然ですが、実際にはリクエストの情報を取り出して利用できます。 これは、裏でFlaskが働いて、リクエストの情報をrequestに入れているのかと思われます。
(参考文献なしなので妄想。)

Flask-WTformsについて

以下のようなコードを例とします。

@auth.route('/signup', methods=['GET', 'POST'])
def signup():
    form = SignUpForm()

    if form.validate_on_submit():
        user = User(
            username=form.username.data,
            email=form.email.data,
            password=form.password.data,
        )
    # 以下省略

上記コードでは、フォームに入力した情報がリクエストを経由してformに格納される。
コード上では、form = SignUpForm()とあるのみで、リクエストの情報を格納しているようには見えない。しかし、実際には、Flask-WTformsが自動で格納しているらしい。
公式ドキュメントに以下の記載があった。

If formdata is not specified, this will use flask.request.form and flask.request.files.

flask-wtf.readthedocs.io