Request Handling & Custom Responses
Flask provides access to the global request object containing client data, and lets you return custom headers, status codes, and JSON payloads easily.
1 Query Params & Forms
Python — Handling Incoming Data
from flask import Flask, request, jsonify, make_response
app = Flask(__name__)
@app.route("/search")
def search():
# Get query parameters: /search?q=flask&limit=10
query = request.args.get("q", "")
limit = request.args.get("limit", 10, type=int)
return f"Search for: {query}, Limit: {limit}"
@app.route("/login", methods=["POST"])
def login():
# Access POST form fields or JSON data
username = request.form.get("username")
# Or if request payload is JSON:
# data = request.get_json()
return jsonify({"authenticated": True, "user": username})
2 Custom Headers & Status Codes
Python — Custom Responses
@app.route("/resource")
def get_resource():
response = make_response(jsonify({"msg": "Content"}), 201)
response.headers["X-Custom-Header"] = "FlaskVal"
return response
3 Code Challenge
Challenge: Write a route that accepts POST requests containing a JSON payload with fields
name and email. Validate that both fields exist; if they do not, return a 400 Bad Request JSON response.