What's the difference between `request.form`, `request.args`, and `request.get_json()`?

Beginner

Answer

These access different types of request data:

  • request.form: POST form data (application/x-www-form-urlencoded or multipart/form-data)
  • request.args: URL query string parameters
  • request.get_json(): JSON data from request body (application/json)
# URL: /api?page=1
# Body: {"name": "John"}
# Form data: username=admin

@app.route('/api', methods=['POST'])
def api():
    page = request.args.get('page')        # "1"
    name = request.get_json()['name']      # "John"
    username = request.form.get('username') # "admin"