{{tag>dev python flask redirection}} :TODO_DOCUPDATE: ====== Flask : redirections ====== Le framework Flask propose la fonction ''redirect()''. Pour les redirections internes, on l'utilise conjointement à la fonction ''url_for()'' : from flask import Flask, redirect, url_for app = Flask(__name__) @app.route('/') def home(): return 'Welcome to Home Page' @app.route('/external') def external_redirect(): return redirect('https://www.example.com') @app.route('/test-perm-redirect') def redirect_example(): return redirect(url_for('home'), code=301) On peut spécifier un [[https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP|code d'état HTML]] via l'option ''code''. Les plus utilisés sont : * **301** : Ressource déplacée de façon permanente ; * **302** : Ressource déplacée de façon temporaire. ===== Redirections avec paramètres ===== Il est possible de spécifier des paramètres notamment lorsque les URLs cibles sont dynamiques : @app.route('/user/') def user_profile(username): return f'Profile page of {username}' @app.route('/redirect-to-user') def redirect_to_user(): return redirect(url_for('user_profile', username='john'))