Documentation Frappe Framework

Frappe Framework

Réponses

Frappe construit la réponse HTTP selon un type. Pour un téléchargement, on renseigne le nom, le contenu et l’affichage inline ou en pièce jointe.

1 min de lectureMis à jour le Source : docs.frappe.io

Qui construit la réponse

build_response, dans frappe.utils.response, choisit le rendu selon le type de contenu. La source la situe après le routeur. Si frappe.local.response contient une clé docs vide, cette clé est retirée. Le type lu est frappe.response.type, ou l’argument response_type.

TypeFonction
csvas_csv
txtas_txt
downloadas_raw
jsonas_json
pdfas_pdf
pageas_page
redirectredirect
binaryas_binary

Téléchargement

En v13, as_raw crée une Response. Le type MIME vient de content_type, sinon d’une estimation à partir du nom de fichier, sinon application/unknown. L’en-tête Content-Disposition vaut display_content_as ou, à défaut, attachment, suivi du nom de fichier dont les espaces deviennent des soulignés. Le corps est filecontent.

inline demande au navigateur d’afficher le contenu dans la page. attachment demande de l’enregistrer.

Point d’entrée

python
@frappe.whitelist()
def download(name):
    file = frappe.get_doc("File", name)
    frappe.response.filename = file.file_name
    frappe.response.filecontent = file.get_content()
    frappe.response.type = "download"
    frappe.response.display_content_as = "attachment"

Point d’attention

Sans display_content_as, le navigateur reçoit attachment. Le type doit être l’une des huit clés : la fonction indexe le dictionnaire sans valeur de repli visible dans l’extrait.

Réponses HTTP construites par Frappe | ERPNext Lab