Ressources Magic Makers

 

Site en maintenance

 
Nous sommes actuellement entrain de mettre à jour les ressources de ce site.
Pendant la mise à jour vous pouvez retrouver tous les nouveaux contenus sur le site
 

https://lp-magicmakers.fr/

 
 

Bases de Flask

Créer son application

Pour créer notre application, on commence par importer Flask et créer une variable app dans laquelle on va construire notre application.

Dans la suite de cette page, app fait référence à cette variable dans laquelle on va construire et ajouter les différents éléments de notre application.

Les lignes de code ci-dessus sont à mettre au tout début de notre programme.

Lancer son application

Une fois notre application créée, en toute fin de notre programme, on va lui demander de se lancer. Pour ça on va appeler la fonction run sur notre app.

Cette ligne doit impérativement être à la toute fin de notre programme. Si tu rajoute d’autres éléments à ton app après, ils ne seront pas pris en compte.

Créer une route

Pour créer une page on commence par indiquer sa route, c’est à dire le chemin qui permet d’accéder à la page. Cette route va permettre de construire l’adresse URL de la page et pouvoir y accéder.

Pour cela on va ajouter une route à notre app avec la syntaxe : @app.route(« /chemin »), puis en dessous on va créer une fonction qui construit le contenu de la page.

Pour la route de la page d’accueil, qui est celle sur laquelle on veut arriver quand on lance notre app, on utilise simplement « / », pour une autre page on mettra son nom « /ma_page »

Notre fonction doit retourner la page à afficher, c’est à dire une chaine de caractère qui sera comprise comme une page HTML.

Dans le retour de la fonction on peux intégrer plein de balises HTML pour gérer l’affichage de notre page.

Afficher un template

Au lieu de retourner directement du code HTML écrit dans notre page python on peut créer une page HTML spécifique dans un autre fichier. C’est ce qu’on appelle un template.

Avant tout, on va créer un dossier templates dans lequel on va ranger nos différents templates. Il est essentiel que le dossier s’appelle templates et que les fichiers soient rangés dedans car Flask va aller chercher dans ce dossier. Si le template n’est pas bien rangé, il n’arrivera pas à le trouver.

La fonction que nous allons utiliser s’appelle render_template. On commence par l‘importer.

Puis dans la fonction de notre route, au lieu de retourner simplement du texte, on retourne la page HTML que l’on a créé avec render_template()

Rediriger vers une autre page​

Dans certaines situations, on peut vouloir faire une action spécifique, mais ne pas afficher de page spécifique à cette action, mais plutôt rediriger vers l’accueil.

Par exemple si on se déconnecte, on va vouloir faire l’action de déconnexion, mais pas forcement arriver sur une page « Vous avez bien été deconnecté ». On peut préférer renvoyer sur la page d’accueil, ou la page de connexion.

On va importer les fonctions redirect et url_for : redirect permet de rediriger et url_for de spécifier la fonction à exécuter pour la redirection.

Puis dans la fonction de notre route, au lieu de retourner une page, on redirige vers la fonction de notre choix.

Générer des pages avec une variable

Dans certains cas, on peut vouloir créer des pages spécifiques à partir d’un template unique, mais avec des informations différentes selon le cas.

Par exemple sur de la vente en ligne on peut imaginer un catalogue avec les différents articles, et avoir une page par article. On ne va pas faire manuellement toutes les pages, mais juste utiliser les informations de l’article pour afficher le template.

Avant te lancer la dessus, n’hésite pas à regarder comment créer des formulaires ainsi que comment utiliser les bases de données MongoDB.

Pour générer de nouvelles pages, on va utiliser une variable que l’on va passer à notre fonction et à notre route afin de savoir quoi afficher. Pour cela on utilise la syntaxe suivante :

Dans notre page HTML si l’on souhaite pouvoir faire des liens vers la page créé, on va également faire le lien avec la valeur que l’on veut passer dans notre url_for avec la syntaxe suivante:

La variable sera transmise à notre fonction python, sous forme d’une chaine de caractère.