Frappe Framework
Créer une app
Deuxième étape du tutoriel : générer le squelette de l’app Library Management avec bench new-app et comprendre le rôle de chaque dossier et fichier créé.
Objectif
Cette étape consiste à générer le squelette d’une app Frappe à l’aide de la CLI bench.
Créer l’app
Avant de commencer, vérifiez que vous êtes bien dans un dossier bench avec bench find . :
$ bench find .
/home/frappe/frappe-bench is a bench directory!Pour créer notre app de gestion de bibliothèque (Library Management), lancez la commande new-app :
bench new-app library_managementPlusieurs questions vous sont posées et une sortie semblable à celle-ci s’affiche. Vous pouvez saisir les informations manuellement ou appuyer sur Entrée pour conserver les valeurs par défaut :
App Title (default: Library Management):
App Description: Library Management System
App Publisher: Faris Ansari
App Email: [email protected]
App Icon (default 'octicon octicon-file-directory'):
App Color (default 'grey'):
App License (default 'MIT'):
'library_management' created at /home/frappe/frappe-bench/apps/library_management
Installing library_management
$ ./env/bin/pip install -q -U -e ./apps/library_management
$ bench build --app library_management
yarn run v1.22.4
$ FRAPPE_ENV=production node rollup/build.js --app library_management
Production mode
✔ Built js/moment-bundle.min.js
✔ Built js/libs.min.js
✨ Done in 1.95s.Une fois les informations renseignées, une app nommée library_management est créée dans le dossier apps.
Pour voir la liste complète des icônes de la bibliothèque octicons, consultez https://primer.style/octicons/.
Structure des dossiers de l’app
Le dossier de votre app doit ressembler à ceci :
apps/library_management
├── README.md
├── library_management
│ ├── hooks.py
│ ├── library_management
│ │ └── __init__.py
│ ├── modules.txt
│ ├── patches.txt
│ ├── public
│ │ ├── css
│ │ └── js
│ ├── templates
│ │ ├── __init__.py
│ │ ├── includes
│ │ └── pages
│ │ └── __init__.py
│ └── www
└── pyproject.tomlLe dossier library_management (au premier niveau) contient tout le code source de votre app. Il comprend :
| Élément | Rôle |
|---|---|
public | Fichiers statiques servis par Nginx en production |
templates | Templates Jinja utilisés pour rendre les vues web |
www | Pages web servies selon leur chemin dans le dossier |
library_management | Module par défaut créé avec l’app |
modules.txt | Liste des modules définis dans l’app |
patches.txt | Entrées de patchs pour les migrations de base de données |
hooks.py | Hooks permettant d’étendre ou d’intercepter les fonctionnalités standard du framework |
pyproject.toml | Décrit comment l’app est construite ; vous pouvez y ajouter des dépendances Python tierces, qui seront installées en même temps que l’app |
Étape suivante : Créer un site.
