API de l'objet Response de Flask

La classe Response représente la réponse HTTP renvoyée par les fonctions de vue Flask. Dans la plupart des cas, vous n'avez pas besoin de la créer directement—Flask convertit automatiquement les valeurs de retour des fonctions de vue en objets Response.

Lorsqu'un contrôle manuel est nécessaire, utilisez la fonctionmake_response().


Constructeur

Paramètre Type Valeur par défaut Description
response str / bytes / itérateur Requis Contenu du corps de la réponse
status int / str 200 Code de statut HTTP ou texte de statut, tel que 404 ou "404 Not Found"
headers dict / list Aucune En-têtes de réponse, un dict ou une liste de tuples (clé, valeur)
mimetype str Aucune Type MIME, par ex. "application/json"
content_type str Aucune En-tête Content-Type, incluant le charset, par ex. "text/html; charset=utf-8"
direct_passthrough bool False Lorsque True, transmettre le corps de la réponse directement sans aucun traitement.

Attributs principaux

Propriété Type Description
status str Statut de réponse (sous forme textuelle), tel que "200 OK" ou "404 Not Found"
status_code int Codes de statut HTTP, tels que 200, 404
headers En-têtes Objet d'en-tête de réponse, prend en charge les opérations de type dictionnaire
data bytes Représentation en octets du corps de la réponse
mimetype str Type MIME (sans encodage), tel que "text/html"
content_type str Content-Type (y compris le jeu de caractères), par ex. "text/html; charset=utf-8"
content_length int Longueur en octets du corps de la réponse

Opérations sur les en-têtes de réponse

Méthodes Description
headers.get(key) Obtenir la valeur de l'en-tête de réponse spécifié
headers[key] = value Définir les en-têtes de réponse
headers.update(dict) Mettre à jour les en-têtes de réponse par lots

Opérations sur les cookies

Méthodes Description
set_cookie(key, value, max_age, expires, path, domain, secure, httponly, samesite) Définir un cookie. max_age est en secondes, expires est un datetime, secure est réservé à HTTPS
delete_cookie(key, path, domain) Supprimer le cookie spécifié
Paramètres de set_cookie : max_age Durée de vie du cookie en secondes, par ex. max_age=3600 signifie 1 heure
Paramètres de set_cookie : secure Par défaut, la valeur de configuration SESSION_COOKIE_SECURE ; si True, le cookie est envoyé uniquement via HTTPS
Paramètres de set_cookie : httponly Par défaut True, ce qui empêche JavaScript d’accéder à ce cookie
Paramètres de set_cookie : samesite "Strict", "Lax" ou None, contrôlant le comportement d’envoi des cookies intersites

Autres méthodes

Méthodes Description
get_json(force=False, silent=False) Analyse le corps de la réponse en JSON (principalement utilisé pour les tests).
freeze() Fige la réponse dans un état immuable
force_type(response, environ) Méthode de classe qui convertit de force d'autres types de réponses en type Response.

Exemples de code

Exemple

from flask import Flask, make_response

app = Flask(__name__)

@app.route("/custom")
def custom_response():
    # Utiliser make_response pour construire manuellement une réponse
    resp = make_response("<h1>Hello, EXAMPLE!</h1>")

    # Définir le code d'état
    resp.status_code = 201

    # Définir des en-têtes de réponse personnalisés
    resp.headers["X-Custom-Header"] = "my-value"

    # Définir un cookie
    resp.set_cookie("theme", "dark", max_age=86400)    # Valable pendant 24 heures
    resp.set_cookie("lang", "zh-CN", samesite="Lax")   # Restriction SameSite

    return resp

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

@app.route("/api/data")
def api_data():
    # Retourner un dict directement ; Flask le sérialise automatiquement en une réponse JSON
    return {"status": "ok", "data": [1, 2, 3]}
autres extensions