Request Handling & Custom Responses

🐍 FlaskLesson 5Beginner

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.