pythonflaskwerkzeug

Get the data received in a Flask request


I want to be able to get the data sent to my Flask app. I've tried accessing request.data but it is an empty string. How do you access request data?

from flask import request

@app.route('/', methods=['GET', 'POST'])
def parse_request():
    data = request.data  # data is empty
    # need posted data here

The answer to this question led me to ask Get raw POST body in Python Flask regardless of Content-Type header next, which is about getting the raw data rather than the parsed data.


Solution

  • The docs describe the attributes available on the request object (from flask import request) during a request. In most common cases request.data will be empty because it's used as a fallback:

    request.data Contains the incoming request data as string in case it came with a mimetype Flask does not handle.

    All of these are MultiDict instances (except for json). You can access values using: