Créez votre site web dynamique avec Wagtail
un CMS puissant et flexible basé sur Django
Gabriel Trouvé
- Site perso: gabrieltrouve.fr
- Développeur
- Mentor Python et Django chez Docstring.fr
- Présent sur X: @GabrielTrouve

Thierry Chappuis
- Site perso: placepython.fr
- Professeur et chercheur à la Haute Ecole d'Ingénierie et d'Architecture de Fribourg
- Mentor Python et Django sur PlacePython.fr
- Présent sur X: @PlacePython

Introduction à Wagtail
Wagtail : CMS open-source basé sur Python/Django
- Créé pour des sites dynamiques et durables
- Souplesse et personnalisation sur mesure
- Requiert un développeur pour le setup initial mais propose une scalabilité et une sécurité de niveau entreprise
Introduction à Wagtail
Comparaison rapide avec WordPress
- WordPress est orienté vers une prise en main rapide et des sites de type blog ou marketing
- Wagtail vise des projets nécessitant une gestion avancée des contenus et une extensibilité maximale pour les entreprises
Critère | Wagtail | Wordpress |
---|---|---|
Langage | Python (Django) | PHP |
Plugins/paquets | Biblios Django | Plugins nombreux |
Thèmes | Pas de thème, liberté de design | Thèmes prêt à l'emploi |
Sécurité | Bonne si on suit les guidelines django | Plugins souvent sources de failles |
Scalabilité | Optimisations personnalisées | Plugins parfois lents |
Coût | Frais de dev | Frais de plugins |
Wagtail vs WordPress
Critère | Wagtail | Wordpress |
---|---|---|
Langage | Python (Django) | PHP |
Plugins/paquets | Biblios Django | Plugins nombreux |
Thèmes | Pas de thème, liberté de design | Thèmes prêt à l'emploi |
Sécurité | Bonne si on suit les guidelines django | Plugins souvent sources de failles |
Scalabilité | Optimisations personnalisées | Plugins parfois lents |
Coût | Frais de dev | Frais de plugins |
Wagtail vs WordPress
Critère | Wagtail | Wordpress |
---|---|---|
Langage | Python (Django) | PHP |
Plugins/paquets | Biblios Django | Plugins nombreux |
Thèmes | Pas de thème, liberté de design | Thèmes prêt à l'emploi |
Sécurité | Bonne si on suit les guidelines django | Plugins souvent sources de failles |
Scalabilité | Optimisations personnalisées | Plugins parfois lents |
Coût | Frais de dev | Frais de plugins |
Wagtail vs WordPress
Critère | Wagtail | Wordpress |
---|---|---|
Langage | Python (Django) | PHP |
Plugins/paquets | Biblios Django | Plugins nombreux |
Thèmes | Pas de thème, liberté de design | Thèmes prêt à l'emploi |
Sécurité | Bonne si on suit les guidelines django | Plugins souvent sources de failles |
Scalabilité | Optimisations personnalisées | Plugins parfois lents |
Coût | Frais de dev | Frais de plugins |
Wagtail vs WordPress
Critère | Wagtail | Wordpress |
---|---|---|
Langage | Python (Django) | PHP |
Plugins/paquets | Biblios Django | Plugins nombreux |
Thèmes | Pas de thème, liberté de design | Thèmes prêt à l'emploi |
Sécurité | Bonne si on suit les guidelines django | Plugins souvent sources de failles |
Scalabilité | Optimisations personnalisées | Plugins parfois lents |
Coût | Frais de dev | Frais de plugins |
Wagtail vs WordPress
Critère | Wagtail | Wordpress |
---|---|---|
Langage | Python (Django) | PHP |
Plugins/paquets | Biblios Django | Plugins nombreux |
Thèmes | Pas de thème, liberté de design | Thèmes prêt à l'emploi |
Sécurité | Bonne si on suit les guidelines django | Plugins souvent sources de failles |
Scalabilité | Optimisations personnalisées | Plugins parfois lents |
Coût | Frais de dev | Frais de plugins |
Wagtail vs WordPress
Pourquoi choisir Wagtail comme CMS pour Django ?
Meilleure intégration pour les projets Python
Pourquoi choisir Wagtail comme CMS pour Django ?
Flexibilité et contrôle total sur le contenu
Pourquoi choisir Wagtail comme CMS pour Django ?
Fonctionnalités natives de niveau entreprise
Pourquoi choisir Wagtail comme CMS pour Django ?
Scalabilité et sécurité intégrées
Positionnement de Wagtail dans l’écosystème des CMS Django
Autres CMS Python :
-
Django CMS : Orienté pour les sites plus simples, sans les capacités de gestion de contenu avancées de Wagtail
-
Mezzanine : CMS plus léger, mais limité en termes de fonctionnalités d’entreprise
Pourquoi un développeur Django utiliserait un CMS ?
-
Gain de temps sur les fonctionnalités de base
-
Outils d’édition dédiés pour les utilisateurs non techniques
-
Optimisation du front-end et back-end
-
Extensibilité sans compromis
Présentation de l’application de démonstration Wagtail
Bakerydemo : projet d’exemple officiel de Wagtail
-
Présentation des meilleures pratiques de Wagtail pour la gestion des contenus et des pages
Présentation de l’application de démonstration Wagtail
Notre version personnalisée de Bakerydemo :
-
Application modifiée et commentée pour faciliter la prise en main par la communauté francophone
-
Disponible sur github.com/placepython/wagtail-bakerydemo
Présentation de l’application de démonstration Wagtail
Exemples de fonctionnalités incluses :
- Page de recettes, gestion des images, intégration de StreamField pour des pages dynamiques
- Conçu pour illustrer les capacités de Wagtail dans un contexte proche de la production
Partons en ballade !
$ git clone https://github.com/placepython/wagtail-bakerydemo.git
Et maintenant ?

Votre premier projet Wagtail !
$ py -m venv .venv # Windows
# ou
$ python -m venv .venv # MacOS et Linux
# ou
$ uv venv # Tous systèmes
# ou
$ mkdir .venv && pipenv install # Tous systèmes
Créez un répertoire,
ouvrez un terminal dedans,
... et initialisez votre venv comme vous en avez l'habitude !
Votre premier projet Wagtail !
$ py -m venv .venv # Windows
# ou
$ python -m venv .venv # MacOS et Linux
# ou
$ uv venv # Tous systèmes
# ou
$ mkdir .venv && pipenv install # Tous systèmes
Créez un répertoire,
ouvrez un terminal dedans,
... et initialisez votre venv comme vous en avez l'habitude !
Votre premier projet Wagtail !
$ py -m venv .venv # Windows
# ou
$ python -m venv .venv # MacOS et Linux
# ou
$ uv venv # Tous systèmes
# ou
$ mkdir .venv && pipenv install # Tous systèmes
Créez un répertoire,
ouvrez un terminal dedans,
... et initialisez votre venv comme vous en avez l'habitude !
Votre premier projet Wagtail !
$ py -m venv .venv # Windows
# ou
$ python -m venv .venv # MacOS et Linux
# ou
$ uv init # Tous systèmes
# ou
$ mkdir .venv && pipenv install # Tous systèmes
Créez un répertoire,
ouvrez un terminal dedans,
... et initialisez votre venv comme vous en avez l'habitude !
Installez Wagtail
# Dans requirements.txt
wagtail==6.3
# Puis
$ pip install -r requirements.txt
# ou
$ uv add wagtail
# ou
$ pipenv install wagtail
Activez votre venv et...
$ wagtail start config .
# le point est important !
C'est du Django classique !

C'est du Django classique !
$ python manage.py migrate
$ python manage.py createsuperuser
$ python manage.py runserver
C'est du Django classique !
$ python manage.py migrate
$ python manage.py createsuperuser
$ python manage.py runserver
C'est du Django classique !
$ python manage.py migrate
$ python manage.py createsuperuser
$ python manage.py runserver
http://127.0.0.1:8000

http://127.0.0.1:8000


A vous de jouer, on vous accompagne !
Comment mettre à jour les messages lorsqu'on travaille avec htmx
By Thierry Chappuis
Comment mettre à jour les messages lorsqu'on travaille avec htmx
Slides de présentation pour le mentorat Docstring.fr du mercredi 25 septembre
- 91