Skip to content

Boipisigre/jinja2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction à la création de modèles Jinja

Premiers pas

Construit à partir de https://realpython.com/primer-on-jinja-templating/ que je vous recommande de consulter pas seulement pour jinja2 mais aussi pour l'utilisation de jinja2 dans Flask.

installation

pipenv install Jinja2

Vérification

pipenv graph Jinja2==3.1.2

  • MarkupSafe [required: >=2.0, installed: 2.1.2] pkg-resources==0.0.0

Nota : si l'installation se fait avec Jinja2 l'import lui doit se faire avec jinja2.

Python 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110] on linux Type "help", "copyright", "credits" or "license" for more information.

import Jinja2
Traceback (most recent call last):
File "", line 1, in
ModuleNotFoundError: No module named 'Jinja2'
import jinja2

Premier test

import jinja2
environment = jinja2.Environment()
template = environment.from_string("Hello, {{ name }}!")
print(template.render(name="World"))

Dans ce premier code on voit les bases de jinja2 .

le chargement d'un modèle dans le moteur (environnemt).

template = environment.from_string("Hello, {{ name }}!")

le rendu

print(template.render(name="World"))

Il est bien sur plus intéressant de charger un modèle à partir d'un fichier.

Aller plus loin

Un fichier comme modèle:

voici le fichier modèle : message.txt

{# templates/message.txt #}

Bonjour {{ name }}!

Je suis heureux de vous informer que vous avez très bien réussi l'examen d'aujourd'hui : {{ test_name }}.
Vous avez atteint {{ score }} sur {{ max_score }} points.

A bientôt!

Pierre

le script message.py montre comment on charge un modèle et l'on utilise les variables {{ nom }} dans jinja2.

Nota : on passe la structure student et non pas name et score

Maîtriser le flux dans Jinja

Dans jinja2 il existe des structures de programmation permettant de traiter des cycles, des conditions.

Instruction if

Elle fonctionne comme en Python

la syntaxe est proche {% if %} action {% else %} action {% endif %}

Instruction loop

c'est en fait l'instruction {% for %} elle aussi construite comme en Python..

le script write_messages.py associé au deux modèles messageif.txt et resultat.html vous donnera une idée des possibilité de Jinja2

A lire

https://www.golinuxcloud.com/flask-template/

https://realpython.com/primer-on-jinja-templating/

https://ttl255.com/jinja2-tutorial-part-1-introduction-and-variable-substitution/

About

pour initiation à jinja2

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors