Documentation Frappe Framework

Frappe Framework

Appel AJAX Frappe

frappe.call parle au serveur sans bloquer la page. La méthode Python doit être en liste blanche, sauf appel d’une API standard.

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

À quoi sert frappe.call

frappe.call gère les appels AJAX. Il est asynchrone : la requête part, la réponse revient par un rappel. Le détail des appels serveur est aussi dans Appels serveur (AJAX).

Paramètres

ParamètreRôle
methodChemin pointé d’une méthode serveur en liste blanche
typeGET, POST, PUT ou DELETE. Défaut : POST.
argsArguments envoyés avec la requête
successAprès une exécution réussie
errorAprès un échec
alwaysDans les deux cas
btnObjet qui a déclenché l’appel
freezeSi vrai, fige l’écran jusqu’à la réponse
freeze_messageTexte affiché pendant ce gel
asyncVrai par défaut. false rend l’appel synchrone.
urlAdresse de la requête, ou frappe.request.url

API standard

L’exemple appelle frappe.client.get_value sur Item, avec un filtre name égal à item_code, et demande item_name, web_long_description, description, image et thumbnail. Le rappel s’appelle ici callback, et ne poursuit que si r.exc est absent. doctype est le DocType, filters la condition, fieldname les champs attendus, en tableau.

Méthode de l’application

Le chemin pointe vers les modules Python. Le dernier segment est le nom de la méthode. L’exemple frappe.core.doctype.user.user.get_all_roles vit dans user.py du DocType User. La fonction porte @frappe.whitelist().

À retenir

Toute méthode serveur appelée par frappe.call doit être en liste blanche avec @frappe.whitelist().

Point d’attention

La structure générale nomme le rappel success, l’exemple d’API standard utilise callback. async: false est le seul moyen indiqué pour un appel synchrone.