from flask import requestrequest.args: Query parameters/GET
name = request.args.get('name')NOTE: Return None if not available.
data = request.argsif 'name' in data: name = data['name']NOTE: werkzeug.exceptions.HTTPException.wrap.<locals>.newcls: 400 Bad Request: KeyError: 'name' exception when key not found
Cast Parameter Type
age = request.args.get('age', type=int)NOTE: Will return None if age is not int.
POST: Form/POST
name = request.form.get('name')data = request.formdata['name']age = request.form.get('age', type=int)List of values
options = request.form.getlist('options')request.values: GET or POST
Will get from both request.args or request.form.
name = request.values.get('name')request.json
if request.is_json: name = request.json.get('name') age = request.json.get('age') # auto type casting depending on the json formatNOTE: request.json is None if this is not a valid json request
if request.is_json: data = request.get_json(force=True) if 'name' in data: name = data['name']NOTE: 400 Bad Request is raised for request.get_json(force=True) when request is not json (on Development Server).
Combine request.form, request.args and request.json
from werkzeug.datastructures import CombinedMultiDictdata = CombinedMultiDict([request.values, request.json])if 'name' in data: name = data['name']request.files
Uploaded files of FileStorage structure.
for param_name, fileinfo in request.files.items(): filename = fileinfo.filename mimetype = fileinfo.mimetype fileinfo.save('DESTINATION')fileinfo = request.files['PARAM_NAME']request.method
if request.is_json: ...elif request.method == 'POST': ...else request.method == 'GET': ...References: