Créez votre site web dynamique avec Wagtail

un CMS puissant et flexible basé sur Django

Gabriel Trouvé

 

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 ?

  1. Gain de temps sur les fonctionnalités de base

  2. Outils d’édition dédiés pour les utilisateurs non techniques

  3. Optimisation du front-end et back-end

  4. 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 :

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