Flask Response API del objeto Response

La clase Response representa la respuesta HTTP devuelta por las funciones de vista de Flask. En la mayoría de los casos no necesitas crearla directamente: Flask convierte automáticamente el valor de retorno de la función de vista en un objeto Response.

Cuando necesites control manual, usamake_response()la función.


Constructor

Parámetros Tipo Valor por defecto Descripción
response str / bytes / iterator Obligatorio Contenido del cuerpo de la respuesta
status int / str 200 Código de estado HTTP o texto de estado, como 404 o "404 Not Found"
headers dict / list None Encabezados de respuesta, dict o lista de tuplas (clave, valor)
mimetype str None Tipo MIME, como "application/json"
content_type str None Encabezado Content-Type, con codificación, como "text/html; charset=utf-8"
direct_passthrough bool False Cuando es True, pasa el cuerpo de la respuesta directamente, sin hacer ningún procesamiento

Atributos principales

Atributo Tipo Descripción
status str Estado de la respuesta (en forma de texto), como "200 OK", "404 Not Found"
status_code int Código de estado HTTP, como 200, 404
headers Headers Objeto de encabezados de respuesta, admite operaciones de tipo diccionario
data bytes Representación en bytes del cuerpo de la respuesta
mimetype str Tipo MIME (sin codificación), como "text/html"
content_type str Content-Type (con codificación), como "text/html; charset=utf-8"
content_length int Longitud en bytes del cuerpo de la respuesta

Operaciones con encabezados de respuesta

Método Descripción
headers.get(key) Obtener el valor del encabezado de respuesta especificado
headers[key] = value Establecer el encabezado de respuesta
headers.update(dict) Actualizar encabezados de respuesta por lotes

Operaciones con cookies

Método Descripción
set_cookie(key, value, max_age, expires, path, domain, secure, httponly, samesite) Establecer una cookie. max_age es en segundos, expires es datetime, secure solo HTTPS
delete_cookie(key, path, domain) Eliminar la cookie especificada
Parámetro de set_cookie: max_age Segundos de validez de la cookie, por ejemplo max_age=3600 significa 1 hora
Parámetro de set_cookie: secure Por defecto es el valor de configuración SESSION_COOKIE_SECURE; cuando es True solo se envía por HTTPS
Parámetro de set_cookie: httponly Por defecto es True; prohíbe que JavaScript acceda a esta cookie
Parámetro de set_cookie: samesite "Strict", "Lax" o None; controla el comportamiento de envío de cookies entre sitios

Otros métodos

Método Descripción
get_json(force=False, silent=False) Parsea el cuerpo de la respuesta como JSON (principalmente para pruebas)
freeze() Congela la respuesta en un estado inmutable
force_type(response, environ) Método de clase; convierte por fuerza respuestas de otros tipos al tipo Response

Ejemplo de código

Ejemplo

from flask import Flask, make_response

app = Flask(__name__)

@app.route("/custom")
def custom_response():
    # Usa make_response para construir la respuesta manualmente
    resp = make_response("<h1>Hello, EJEMPLO!</h1>")

    # Establecer el código de estado
    resp.status_code = 201

    # Establecer encabezado de respuesta personalizado
    resp.headers["X-Custom-Header"] = "my-value"

    # Establecer cookie
    resp.set_cookie("theme", "dark", max_age=86400)    # Válida por 24 horas
    resp.set_cookie("lang", "zh-CN", samesite="Lax")   # Restricción SameSite

    return resp

@app.route("/delete-cookie")
def delete_cookie():
    resp = make_response("Cookie eliminada")
    resp.delete_cookie("theme")
    return resp

@app.route("/api/data")
def api_data():
    # Devuelve directamente un dict; Flask lo serializa automáticamente como JSON Response
    return {"status": "ok", "data": [1, 2, 3]}
Otras extensiones