Documentation Frappe Framework

Frappe Framework

API de script

La liste couvre le formatage, la session, les documents, la base, le query builder, les utilitaires et l’e-mail. Pour aller plus loin, il faut une application.

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

Périmètre

Commandes autorisées dans un script serveur, un format d’impression ou un Script Report. Pour davantage, la source dit de créer une application et d’écrire les gestionnaires dans des modules Python. Le script serveur qui les appelle est dans Script serveur.

Modules et format

json est le module standard. _("This is translatable") traduit. frappe.format formate selon le type. L’exemple publié appelle frappe.format_value(value, dict(fieldtype='Currency')). frappe.date_format utilise le format de date par défaut. frappe.format_date renvoie une date du genre « 1st September 2019 ».

Session

frappe.form_dict porte les paramètres. /page?name="test" se lit frappe.form_dict.name. frappe.request et frappe.response sont la requête et la réponse. frappe.session.user est l’utilisateur, frappe.session.csrf_token le jeton CSRF. frappe.user est aussi l’utilisateur courant. frappe.get_fullname et frappe.full_name donnent le nom complet. frappe.get_gravatar passe par frappe.utils.get_gravatar_url.

Documents et base

Disponibles, parfois sans autre description : get_meta, new_doc, get_doc (on peut enregistrer ou appeler une méthode exposée), get_last_doc (dernier créé, ou filtré), get_cached_doc, get_mapped_doc, rename_doc, delete_doc, get_system_settings.

frappe.db.get_list filtre selon les droits de l’utilisateur. get_all ne filtre pas ainsi. sql exécute un SELECT. L’exemple publié est select name from Customer where name like 'm%', sans préfixe tab. get_value, get_single_value, get_default, escape (contre l’injection), set_value, exists (le nom, ou None). commit et rollback sont permis dans un script serveur, par exemple un planificateur personnalisé. Ils ne marchent pas dans un script d’événement de DocType.

frappe.qb sert aux SELECT. L’exemple : frappe.qb.from_("Task").select("*").run().

Utilitaires, HTTP, e-mail

run_script exécute un script serveur et lit frappe.flags. msgprint affiche une fenêtre dans la réponse. get_hooks, frappe.utils, render_template, get_url (via frappe.utils.get_url). socketio_port est le port Socket.IO. style.border_color renvoie #d1d8dd. guess_mimetype appelle mimetypes.guess_type. html2text encode le HTML en texte. dev_server est vrai en mode développeur. log_error crée un Error Log avec la pile. FrappeClient se connecte à un site via une session requests.

make_get_request, make_post_request et make_put_request appellent une URL externe. L’exemple POST publié s’écrit data={'username: 'test'}, guillemet manquant après username. L’exemple PUT passe un en-tête Auth.

frappe.sendmail(recipients, sender, subject, message) envoie un e-mail. Le message d’exemple est du HTML.

Point d’attention

commit et rollback sont inutiles sur un événement de document : la note dit qu’ils n’y fonctionnent pas. get_list respecte les droits, get_all non.