Activité Défis Flask

Dans cette activité, les makers vont apprendre à utiliser Flask à travers des défis de création.

Objectifs pédagogiques

Compétences techniques

  • Créer une application web avec Flask
  • Comprendre et savoir utiliser les routes
  • Afficher la valeur d’une variable sur une page HTML

La place dans le module

Cette activité vient en tout début de module, avant l’activité Crée ton test de personnalité

Jour 1

Jour 2

Jour 3

Jour 4

Jour 5

1h

🤩

30 min

🤩

30 min

1h

Matériel

Déroulé de l'activité

Segmentation de l’activité

Détail de l’activité

Segment 1 (1h) : Introduction et défis

Introduction (10 min)

Tu peux expliquer aux makers que durant tout ce module, on va créer des applications web.

C’est quoi une application web ?

Demande aux makers ce qu’est une application web. Ont-ils déjà entendu le terme ? Ont-ils une idée de ce que ça peut bien vouloir signifier ?

Il y a deux éléments importants à apporter :

Le fonctionnement d’une application web est dynamique.
Par opposition à un site “classique” où chaque lien mène à une autre page, une application web est dite dynamique car chaque lien mène à un bout de code spécifique. Tout est donc possible !

Clique sur l'image pour la voir en grand !

C’est une technologie omniprésente de nos jours. De manière générale, l’applicatif passe en grande partie par le web. Des outils comme Scratch, Construct, Whimsical utilisent le web.

Discord ? Même si vous utilisez l’application de bureau, il s’agit en réalité d’une application web. Quasiment toutes les applications sur votre téléphone portable sont également des applications web !

C’est quoi Flask ?

Demande aux makers s’ils savent ce qu’est Flask – peut-être que certain.e.s l’ont déjà utilisé !
Dans tous les cas, tu pourras expliquer qu’il s’agit d’un framework qui sert justement à créer des applications web (webapps) en Python.

Dans notre code, il suffira donc d’importer le module Flask avec from flask import Flask et on aura accès à de nouvelles fonctions nous permettant de créer des applications web !

Premiers défis (30 min)

Invite tes makers à créer un nouveau projet Python sur Replit, qu’ils peuvent appeler par exemple « DefisFlask ». Puis, partage le lien suivant à tes makers :

>>> Défis Flask <<<

Il s’agit de défis à relever avec Flask. Explique aux makers que l’on va faire les 3 premiers ensemble pour découvrir Flask, et que par la suite ils pourront avancer sur les défis suivants en autonomie.

Accompagne-les donc sur les 3 premiers défis. Voici comment les accompagner :

Défi 1 :

– montre comment importer Flask avec from flask import Flask (attention aux majuscules / minuscules !)
– montre comment créer l’application avec la ligne app = Flask(…)
– montre comment lancer l’application avec la ligne app.run(…)
– comme dit sur la page des défis, si tout est ok, quand on clique sur le bouton « Run » de Replit, on doit maintenant avoir quelque chose qui s’affiche dans la webview quand on lance l’application…   même si ce « quelque chose » est pour le moment un message « Not found – the requested URL was not found […] » !

À ce stade il ne se passe donc rien, mais insiste sur ces 3 étapes qui sont la base de toute application web avec Flask : l’import de Flask, la création de l’application, et le lancement de celle-ci !

Défi 2 :

Fais le défi avec les makers. Tu peux proposer à un maker de se mettre en partage d’écran et de réfléchir ensemble à ce qu’il faut écrire, en respectant les consignes du défi.

Tu dois particulièrement insister sur les points suivants :
expliquer ce qu’est une route. Pour chaque route, on pourra créer une fonction, qui pourra donc faire plein de code avant d’afficher quelque chose ! Pour le moment, on affiche juste un texte, mais par la suite on affichera des pages web.
– expliquer que l’on insère nos routes après la création de l’application (app = Flask(…) ) mais avant le lancement de celle-ci ( app.run(…) )
– explique que la route « / » correspond à la route de base de notre application web, c’est pourquoi cette dernière est automatiquement lancée lorsqu’on lance l’application

Défi 3 :

Ce défi consiste simplement à refaire la même chose, mais avec une autre route. Demande simplement à tes makers de le faire et partage la solution une fois que tout le monde l’a fait !

Insiste sur l’importance des routes, ce concept étant vraiment primordial lorsque l’on crée des applications web. Par exemple, si tu crées une route /infos, montre que lorsque l’on va sur mon_site/infos cela nous affiche le texte que l’on aura précisé dans notre code !

Reste des défis : (20 min)

Explique aux makers qu’ils vont pouvoir avancer en autonomie pour le reste des défis.

Avant de les laisser avancer en autonomie, demande aux makers s’ils se rappellent comment créer une page web de base facilement sur Replit (touche « ! » puis Entrée sur un document HTML vide)

Puis laisse-les créer une page HTML (défi 4), profites-en pour voir les makers qui ont un peu plus de mal.
Pour le défi 5, il suffit normalement de suivre ce qui est écrit sur la page de défi.

IMPORTANT : Prend un temps avec tous les makers pour faire la correction des défis 4 et 5. Il est important que tous les makers sachent afficher une page HTML en utilisant le render_template().

Puis, laisse les makers avancer en autonomie sur les défis. Passe voir chacun d’entre eux pour les accompagner dans leur découverte de Flask. Certains makers avanceront peut-être très vite et feront également les défis sur les cookies, voire sur les templates… …tant mieux, laisse les expérimenter à leur guise avec Flask !

Segment 2 (3O min) : Fin des défis

Avancée sur les défis (15 min)

Les makers continuent à avancer sur les défis. Passe voir ceux et celles que tu n’as pas encore eu l’occasion de voir.

Correction et déclusion (15 min)

A la fin de l’atelier, tous les makers doivent avoir au moins fait les 7 premiers défis. Ces 15 dernières minutes doivent donc être réservées à un récapitulatif / correction et une déclusion.

Pour le récapitulatif : tu peux réexpliquer comment créer une route, comment afficher une page HTML avec le render_template(), et surtout faire la correction des défis 6 et 7 pour que chacun sache faire des liens entre les pages et passer des arguments à ses pages HTML.
Bien sûr, pour ces corrections, demande aux makers qui le souhaitent de montrer leur solution en partage d’écran afin de les impliquer !

Puis, réserve les 5 dernières minutes pour une petite déclusion : est-ce que l’utilisation de Flask est claire pour tout le monde ? Etait-ce trop difficile, trop facile ? Y a-t-il des choses qu’ils n’ont pas compris ?…

Tips 

 

Tips truc

machin bidule

Tips truc

machin bidule

Retour en haut