Documentation Frappe Framework
Frappe Framework
API Python
Ce chapitre est la référence de l’API Python de Frappe Framework : documents, base de données, Query Builder, tâches de fond, temps réel, hooks, API REST, Jinja et utilitaires.
Contenu du chapitre
Ce chapitre est la référence de l’API Python de Frappe Framework : documents, base de données, Query Builder, tâches de fond, temps réel, hooks, API REST, Jinja et utilitaires.
Pages de ce chapitre, dans l’ordre de la documentation officielle :
Dans ce chapitre
- 01Temps réel (socket.io)Frappe fournit une API d’événements temps réel fondée sur socket.io : écoute côté navigateur, publication côté serveur, gestionnaires personnalisés et salles d’abonnement.
- 02Tâches de fond (Background Jobs)Comment exécuter du code Python en arrière-plan avec frappe.enqueue, configurer files et workers, et planifier des tâches périodiques avec le hook scheduler_events.
- 03API DocumentToutes les fonctions et méthodes pour manipuler un Document Frappe en Python : chargement, création, enregistrement, suppression, renommage, commentaires, tags et arborescences.
- 04API base de donnéesToutes les fonctions de frappe.db pour lire, écrire et administrer la base de données d’un site Frappe, ainsi que le modèle de transaction appliqué par le framework.
- 05API JinjaListe des méthodes autorisées (whitelisted) que Frappe expose aux templates Jinja : formatage, lecture de documents et de valeurs, métadonnées, rendu et traduction.
- 06Cycle de vie d’une requêteDu chemin demandé à la page rendue : prétraitement, résolveur de chemin, sélection du moteur de rendu (StaticPage, TemplatePage, WebformPage, DocumentPage…) et hook page_renderer.
- 07Résolution de la langueComment Frappe choisit la langue d’une session (frappe.lang) et comment exploiter chaque niveau de priorité dans vos apps ou vos scripts.
- 08Fonctions utilitairesLes fonctions utilitaires que Frappe fournit dans frappe.utils pour manipuler dates et durées, formater, valider, générer des PDF, utiliser le cache Redis, envoyer des e-mails et plus.
- 09RéponsesFrappe 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.
- 10RechercheLa recherche plein texte passe par une classe qui étend FullTextSearch. Elle décrit le schéma, les documents à indexer et la lecture du résultat.
- 11Hooksget_hooks met toutes les valeurs en liste. Assets, documents, planificateur et site web s’y déclarent. Un patch listé dans never_skip_patches arrête la migration s’il échoue.
- 12API RESTLa liste filtre, trie et pagine. Créer, lire, modifier et supprimer passent par le nom du document. Une méthode en liste blanche s’appelle sous /api/method.
- 13API FullTextSearchFullTextSearch enveloppe Whoosh pour indexer un document, retirer une fiche, reconstruire l’index et chercher un texte.
- 14API Dialog (Python)Depuis une requête, msgprint parle à l’utilisateur connecté au bureau. throw affiche le message et lève une exception.
- 15Query BuilderDocType ajoute le préfixe tab. Table ne l’ajoute pas. Les fonctions JSON existent à partir de la v16. Le code MATCH publié ne compile pas tel quel.
- 16frappe.qb.get_queryFiltres, jointures de liens et tables enfants, pagination et verrous. Un champ interdit disparaît du select, mais un filtre dessus lève une erreur.
- 17Recherche SQLiteOrthographe, fraîcheur et score BM25 se combinent. Le HTML est nettoyé. Sans enregistrement du hook, l’index reste manuel.
