patternpythonflaskCritical
Get the data received in a Flask request
Viewed 0 times
datarequestthegetreceivedflask
Problem
I want to be able to get the data sent to my Flask app. I've tried accessing
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.
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
All of these are
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.request.args: the key/value pairs in the URL query string
request.form: the key/value pairs in the body, from a HTML post form, or JavaScript request that isn't JSON encoded
request.files: the files in the body, which Flask keeps separate fromform. HTML forms must useenctype=multipart/form-dataor files will not be uploaded.
request.values: combinedargsandform, preferringargsif keys overlap
request.json: parsed JSON data. The request must have theapplication/jsoncontent type, or userequest.get_json(force=True)to ignore the content type.
All of these are
MultiDict instances (except for json). You can access values using:request.form['name']: use indexing if you know the key exists
request.form.get('name'): usegetif the key might not exist
request.form.getlist('name'): usegetlistif the key is sent multiple times and you want a list of values.getonly returns the first value.
Context
Stack Overflow Q#10434599, score: 2247
Revisions (0)
No revisions yet.