Fini les return "<h1>...</h1>". On passe aux choses sérieuses.
On a besoin de la fonction render_template.
Exemple simple
Ton fichier Python app.py :
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/hello/<name>')
def hello(name):
# On rend le fichier 'hello.html' en lui passant la variable 'name'
return render_template('hello.html', nom_utilisateur=name)
Ton fichier template templates/hello.html :
<!DOCTYPE html>
<html>
<head>
<title>Bienvenue</title>
</head>
<body>
<h1>Salut, {{ nom_utilisateur }} !</h1>
<p>Bienvenue sur notre site génial.</p>
</body>
</html>
Si tu vas sur /hello/Bob, Jinja va remplacer {{ nom_utilisateur }} par "Bob".
Passer plusieurs variables
Tu peux passer autant de variables que tu veux.
@app.route('/profil')
def profil():
user_info = {
"pseudo": "DarkSasukedu93",
"niveau": 42,
"premium": True
}
return render_template('profil.html', user=user_info)
Et dans le HTML :
<h1>Profil de {{ user.pseudo }}</h1>
<p>Niveau : {{ user.niveau }}</p>
Note comment on accède aux clés du dictionnaire avec un point (user.pseudo) au lieu des crochets Python (user['pseudo']). Jinja est malin !