{{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'))