Flask interview question · Most asked

How do you access request data and build responses in Flask?

Summary

Use the request proxy: request.args (query), request.form (form fields), request.get_json() (JSON body), request.files, request.headers, request.cookies. Return a string, dict (auto-JSON), tuple (body, status, headers) or a Response object.

Longer Answer

Returning a dict or list (Flask 2.2+) is serialized to JSON automatically. make_response() lets you set cookies and headers. abort(404) raises an HTTP exception. request.get_json(silent=True) returns None instead of raising on bad JSON.

Code Example

from flask import request, abort, make_response

@app.post("/items")
def create_item():
    data = request.get_json(silent=True) or abort(400, "JSON body required")
    item = service.create(data)
    resp = make_response(item.to_dict(), 201)
    resp.headers["Location"] = url_for("get_item", item_id=item.id)
    return resp

Key Points

  • request.args, .form, .get_json(), .files
  • Return dict → JSON
  • (body, status, headers) tuples
  • abort() for HTTP errors

More most-asked Flask questions

← All Flask questions