from flask import request
Query Arguments
@app.route('/query-example') def query_example(): language = request.args.get('language') #if key doesn't exist, returns None return '''<h1>The language value is: {}</h1>'''.format(language)
Form Data
@app.route('/form-example', methods=['GET', 'POST']) #allow both GET and POST requests def form_example(): if request.method == 'POST': #this block is only entered when the form is submitted language = request.form.get('language') framework = request.form['framework'] return '''<h1>The language value is: {}</h1> <h1>The framework value is: {}</h1>'''.format(language, framework) return '''<form method="POST"> Language: <input type="text" name="language"><br> Framework: <input type="text" name="framework"><br> <input type="submit" value="Submit"><br> </form>'''
JSON Data
@app.route('/json-example', methods=['POST']) #GET requests will be blocked def json_example(): req_data = request.get_json() language = req_data['language'] framework = req_data['framework'] python_version = req_data['version_info']['python'] #two keys are needed because of the nested object example = req_data['examples'][0] #an index is needed because of the array boolean_test = req_data['boolean_test'] return ''' The language value is: {} The framework value is: {} The Python version is: {} The item at index 0 in the example list is: {} The boolean value is: {}'''.format(language, framework, python_version, example, boolean_test)
References
https://www.digitalocean.com/community/tutorials/processing-incoming-request-data-in-flask