Afficher un template

Un template est un fichier html. C’est ainsi qu’on l’appelle quand on programme en flask. 

Pour info, les termplates du framework Flask, s’appelle « Jinja ».

Dans la ressource expliquant la structure des dossiers, tu as pu voir que pour faire fonctionner un fichier html, il faut absolument le ranger dans un dossier « templates ». 

Le nom template est important, car il va te guider à travers des fonctions natives de Flask qui comporte ce mot. Il est important pour toi de bien savoir ce qu’il représente. 

Dans cette page tu trouveras :

Afficher un template

A la création de ton application, on a pu voir ce qu’était une route. Dans la fonction de celle-ci, nous avons retourné en résultat, une phrase à afficher.

C’est ici que l’on peut, à la place d’une phrase, retourner un template. Ainsi, lorsque nous irons sur la route, flask nous affichera le fichier html auquel elle est liée.

La fonction render_template

Flask fournit une fonction qui permet d’afficher les templates de façon très rapide. Il s’agit de la fonction render_template. Regardons comment s’en servir.

Tout d’abord pour afficher un template… Il faut en avoir un !

Créer ton dossier templates puis un fichier index.html

Dans ton index.html, programme la structure html de ta page, en ajoutant tout ce que tu souhaites afficher sur ta page

  • Dans ton fichier main.py tu vas cibler la route sur laquelle tu veux que ton template s’affiche. 
  • Importe tout en haut de ton code, render_template.
    • Tu peux importer tout ce dont tu as besoin au fil de ta programmation sur la même ligne. Il suffit de les séparer par une virgule
  • Puis retourne dans la fonction de ta route son rendu avec la syntaxe écrite dans l’image de droite

Teste ta route en allant visualiser son url, et vérifie que tu vois bien le template que tu souhaitais qu’elle affiche

Pour cet exemple, on voit bien que ma page d’accueil (route(‘/’)), montre maintenant le code html que j’ai programmé dans mon fichier index.html

Rediriger vers un autre template

Lors de la création de ton projet, tu peux avoir besoin que ta route affiche un template, mais que sous certaines conditions elle redirige sr un autre template.

C’est tout à fait possible grâce à la fonction redirect 

La fonction redirect & url_for

Pour faire fonctionner redirect, il faut également utiliser url_for.

En effet, tu ne peux pas appeler le fichier html de la même façon que pour le render_template.

Tu vas devoir dire à ton programme « de rediriger l’url initiale pour celle-ci »

Importe en haut de ton fichier main.py redirect, et url_for

Puis retourne dans ta route redirect avec la syntaxe posée dans l’image à droite.

 

Note : Tu remarqueras que l’on appelle plus « index.html » mais « index »

Retour en haut