Flask - url_for

Tu vas apprendre à utiliser url_for pour générer automatiquement les URL de ton application en fonction du nom de la fonction de route.

    5ttr 6ttr
  • Intérmédiaire

Notions essentielles

Qu’est-ce que url_for ?

  • C’est une fonction qui retourne l’URL associée à une fonction de route.
  • Tu ne dois pas écrire les chemins en dur : Flask les construit pour toi.

Exemple simple

from flask import Flask, url_for

app = Flask(__name__)

@app.route('/')
def home():
    return "Bienvenue !"

with app.test_request_context():
    print(url_for("home"))  # Affiche "/"

Avec des paramètres

Si ta route a un paramètre, tu peux le passer à url_for :

@app.route('/user/<name>')
def user(name):
    return f"Bonjour {name}"

with app.test_request_context():
    print(url_for("user", name="Alice"))  
    # Résultat : "/user/Alice"

Pourquoi l’utiliser ?

  • Tu évites les erreurs si l’URL change.

  • Ton code est plus clair et plus facile à maintenir.

  • Tu peux générer des liens dynamiques dans tes templates Jinja2 :

    <a href="{{ url_for('home') }}">Accueil</a>

À retenir

  • url_for construit les URL à partir du nom des fonctions de route.
  • Il gère aussi les paramètres dynamiques.
  • Combine-le avec redirect pour de bonnes pratiques.