Documentation Frappe Framework

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.

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

À 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 :

terminal
$ 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.localhost

Cette 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 :

code
sites/library.localhost
├── indexes
│   └── web_routes
├── locks
├── logs
├── private
│   ├── backups
│   └── files
├── public
│   └── files
└── site_config.json
  • Le dossier indexes contient les index générés par la recherche du site web (Website Search).
  • Le dossier locks conserve 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 private contient 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 public contient les fichiers accessibles sans authentification, par exemple des images du site web qui doivent être visibles sans connexion.
  • Le fichier site_config.json contient 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 :
json
{
 "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 :

code
127.0.0.1 site_name

Cette entrée fait correspondre le nom du site à localhost. Bench propose une commande pratique pour le faire à votre place :

terminal
$ bench --site site_name add-to-hosts

Elle 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 :

terminal
$ bench --site library.localhost install-app library_management

Installing library_management...

Pour vérifier que l’app est bien installée :

terminal
$ bench --site library.localhost list-apps
frappe
library_management

Vous 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.

terminal
bench set-config -g developer_mode 1

Pour 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

terminal
# access the python console
$ bench --site library.localhost console
Apps in this namespace:
frappe, library_management

In [1]:

Console MariaDB

terminal
# 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

terminal
$ 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 completed

Pour afficher la liste complète des commandes de site :

terminal
$ 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.

Pages liées

Tutoriel Frappe : créer un site avec bench new-site | ERPNext Lab