Outils pour utilisateurs

Outils du site


Panneau latéral

Plan du Site:

python:flask:response_fichier

Renvoyer un fichier (texte, csv, json, etc...)

Au lieu d'envoyer les données dans le corps de la réponse, ceci va l'envoyer sous forme de fichier que le navigateur proposera d'enregistrer ou d'ouvrir avec un programme externe.

from flask import Response
import json
 
...
 
@app.route("/export")
def export():
 
    data = {
        'nom'   : 'Dupont',
        'prenom': 'Albert',
        'age'   : 50
    }
 
    filename = "export-" + datetime.datetime.now().strftime("%Y%m%d-%H%M") + ".json"
 
    return Response(
        json.dumps(data, indent=4),
        mimetype='application/json',
        headers={
            'Content-Disposition': 'attachment; filename=' + filename
        }
    )

Ensuite, pour provoquer le téléchargement du fichier à partir du code en javascript (par exemple clic sur un bouton), il suffit de donner l'url de la route à window.location :

// clic sur le bouton Exporter
btnExporterClick(event) {
    event.preventDefault();
    window.location = '/export';
}
python/flask/response_fichier.txt · Dernière modification: 2022/11/24 06:15 par marclebrun