Aller au contenu principal

3 formations sont désormais disponibles : Python, Flask et JS.

Aller au contenu principal

Passer des données aux vues (`render_template`)

Apprendre Flask : Le Guide Ultime
4 min de lecture
Gratuit

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 !