Frappe Framework
Créer un site
Troisième étape du tutoriel : créer le site library.localhost, installer l’app Library Management, se connecter au bureau (Desk) et utiliser les commandes bench --site.
À quoi sert un site
Chaque site dispose de sa propre base de données. Un site peut être personnalisé par des scripts qui lui sont propres, et des apps peuvent y être installées.
Créer un nouveau site
Pour créer un site, lancez la commande suivante depuis le dossier frappe-bench :
$ bench new-site library.localhost
MySQL root password:
Installing frappe...
Updating DocTypes for frappe : [========================================] 100%
Set Administrator password:
*** Scheduler is disabled ***
Current Site set to library.localhostCette commande crée une nouvelle base de données : vous devez donc saisir le mot de passe root de MariaDB. Elle vous demande aussi de définir le mot de passe de l’utilisateur Administrator. Choisissez un mot de passe que vous n’oublierez pas, il servira plus tard.
Un nouveau dossier library.localhost apparaît alors dans le dossier sites.
Si la création du site échoue, quelle qu’en soit la raison, il vous est proposé d’annuler les changements. Cette opération supprime le dossier library.localhost (ou son équivalent) dans le dossier des sites, ainsi que la base de données et l’utilisateur créés. Vous pouvez ainsi réessayer sans nettoyer manuellement un site inutilisable.
Structure du dossier d’un site
Le dossier du site ressemble à ceci :
sites/library.localhost
├── indexes
│ └── web_routes
├── locks
├── logs
├── private
│ ├── backups
│ └── files
├── public
│ └── files
└── site_config.json- Le dossier
indexescontient les index générés par la recherche du site web (Website Search). - Le dossier
locksconserve des verrous basés sur des fichiers pour les documents du site, ainsi que des indicateurs sur l’état du site lui-même. - Le dossier
privatecontient les sauvegardes de la base de données et les fichiers privés. Les fichiers privés sont des fichiers téléversés par les utilisateurs et dont l’accès nécessite une authentification. - Le dossier
publiccontient les fichiers accessibles sans authentification, par exemple des images du site web qui doivent être visibles sans connexion. - Le fichier
site_config.jsoncontient la configuration propre à ce site, qui ne doit pas être versionnée. Il joue un rôle comparable à un fichier de variables d’environnement. Si vous l’ouvrez, vous y trouverez les paramètres de connexion à la base de données du site :
{
"db_name": "_ad03fa1a016ca1c4",
"db_password": "pz1d2gN5y35ydRO5",
"db_type": "mariadb"
}Accéder au site dans le navigateur
bench permet de créer plusieurs sites et d’y accéder séparément dans le navigateur, sur le même port. C’est ce qu’on appelle la prise en charge du multi-tenant (multi-tenancy) dans bench.
Frappe détermine quel site servir en comparant le nom d’hôte de la requête avec le nom du site. Vous devriez donc pouvoir accéder à votre site à l’adresse http://library.localhost:8000.
Si le nom de votre site ne se termine pas par .localhost, cela ne fonctionnera pas directement : vous devez indiquer à votre système d’exploitation que ce nom pointe vers localhost. Pour cela, ajoutez l’entrée suivante à votre fichier /etc/hosts :
127.0.0.1 site_nameCette entrée fait correspondre le nom du site à localhost. Bench propose une commande pratique pour le faire à votre place :
$ bench --site site_name add-to-hostsElle demande votre mot de passe root et ajoute l’entrée à votre fichier /etc/hosts.
Vous pouvez maintenant accéder à votre site à l’adresse http://library.localhost:8000 ; la page de connexion s’affiche. Félicitations d’être arrivé jusque-là.
Installer l’app sur le site
Pour installer notre app Library Management sur le site, lancez :
$ bench --site library.localhost install-app library_management
Installing library_management...Pour vérifier que l’app est bien installée :
$ bench --site library.localhost list-apps
frappe
library_managementVous devez voir frappe et library_management dans la liste des apps installées sur le site.
À retenir
Lorsque vous créez un nouveau site, l’app frappe y est installée par défaut.
Se connecter au bureau (Desk)
Attention
Avant de poursuivre, assurez-vous que le site est en mode développeur. Pour cela, exécutez la commande ci-dessous, puis redémarrez bench avec la commande bench start.
bench set-config -g developer_mode 1Pour créer des DocTypes dans notre app, nous devons nous connecter au bureau (Desk). Rendez-vous sur http://library.localhost:8000 : une page de connexion s’affiche.
Saisissez Administrator comme utilisateur, avec le mot de passe défini lors de la création du site.
Après la connexion, l’assistant de configuration (Setup Wizard) apparaît. Cet assistant, à usage unique, permet de définir les paramètres de localisation du site. Choisissez votre langue et terminez l’assistant.
Bravo d’être arrivé jusqu’ici ! Vous devez maintenant voir le bureau. La documentation officielle illustre cette étape par des captures d’écran de la page de connexion, de l’assistant et du bureau.
Commandes de site
Nous avons exécuté plusieurs commandes bench avec l’option --site. On les appelle commandes de site. En voici quelques-unes parmi les plus utiles.
Console Python
# access the python console
$ bench --site library.localhost console
Apps in this namespace:
frappe, library_management
In [1]:Console MariaDB
# access the mariadb console
$ bench --site library.localhost mariadb
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2333498
Server version: 10.4.13-MariaDB Homebrew
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [_ad03fa1a016ca1c4]>Sauvegarde de la base de données
$ bench --site library.localhost backup
Backup Summary for library.localhost at 2020-10-06 23:21:17.277960
Config : ./library.localhost/private/backups/20201006_232116-library_test-site_config_backup.json 94.0B
Database: ./library.localhost/private/backups/20201006_232116-library_test-database.sql.gz 217.4KiB
Backup for Site library.localhost has been successfully completedPour afficher la liste complète des commandes de site :
$ bench --help
Usage: bench frappe [OPTIONS] COMMAND [ARGS]...
Options:
--site TEXT
--profile Profile
--verbose Verbose
--force Force
--help Show this message and exit.
Commands:
add-system-manager Add a new system manager to a site
add-to-email-queue Add an email to the Email Queue
add-to-hosts Add site to hosts
backup Backup
browse Opens the site on web browser
build Minify + concatenate JS and CSS files, build...
build-message-files Build message files for translation
build-search-index
bulk-rename Rename multiple records via CSV file
clear-cache Clear cache, doctype cache and defaults
clear-website-cache Clear website cache
console Start ipython console for a site
data-import Import documents in bulk from CSV or XLSX...
destroy-all-sessions Clear sessions of all users (logs them out)Étape suivante : Créer un DocType.
