Aller au contenu principal

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

Aller au contenu principal

Parfois, tu ne peux pas répondre directement. Tu dois envoyer l'utilisateur ailleurs ou lui dire qu'il a fait une bêtise.

Redirections (redirect)

L'utilisateur se connecte ? Hop, on le renvoie vers l'accueil. Il faut importer redirect et url_for.

Pourquoi url_for ?

Ne jamais écrire les URL en dur (/accueil). Si demain tu changes la route en /home, tu dois modifier tout ton code. url_for('nom_de_la_fonction') génère l'URL pour toi. C'est la vie.

from flask import redirect, url_for

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

@app.route('/old-home')
def old_home():
    # Redirige vers la fonction 'home'
    return redirect(url_for('home'))

Erreurs & Abort (abort)

Si l'utilisateur demande un article qui n'existe pas, ou tente d'accéder à l'admin sans être admin... on arrête tout.

from flask import abort

@app.route('/admin')
def admin():
    est_admin = False # Simulons un utilisateur lambda
    if not est_admin:
        abort(403) # Forbidden (Interdit)
    return "Bienvenue Maître"

Personnaliser les pages d'erreur

La page 404 de base de Flask est moche (désolé Flask). Tu peux la personnaliser.

@app.errorhandler(404)
def page_not_found(error):
    return "<h1>Oups... Perdu ? 🏳️</h1><p>Cette page n'existe pas.</p>", 404

Note bien qu'on doit renvoyer le code 404 à la fin, sinon Flask renverra 200 OK avec le contenu de ta page d'erreur (ce qui est mauvais pour le SEO et les robots).