Cómo redirigir una URL viejo a uno nuevo con el frasco de micro-marco
-
05-10-2019 - |
Pregunta
Estoy haciendo una nueva página web para reemplazar uno actual, usando Frasco micro-marco (basado en Werkzeug), que utiliza Python (2.6 en mi caso).
La funcionalidad del núcleo y muchas páginas son los mismos. Sin embargo mediante el uso Frasco muchas de las URL anteriores son diferentes a las anteriores.
necesito una manera de alguna manera almacenar cada una de las antiguas direcciones URL y la nueva dirección URL, de modo que si un usuario escribe una dirección de edad que simplemente se pasan a la nueva URL y todo funciona bien para ellos.
¿Alguien sabe si esto es posible en el frasco?
Gracias de antemano por su ayuda: -)
Solución
Algo como esto debería empezar:
from flask import Flask, redirect, request
app = Flask(__name__)
redirect_urls = {
'http://example.com/old/': 'http://example.com/new/',
...
}
def redirect_url():
return redirect(redirect_urls[request.url], 301)
for url in redirect_urls:
app.add_url_rule(url, url, redirect_url)
Otros consejos
Otra manera de hacer esto es cambiar el controlador para el antiguo URL para redirección simplemente de forma explícita.
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/new')
def new_hotness():
return 'Sizzle!'
@app.route('/old')
def old_busted():
return redirect(url_for('new_hotness'))
Si ya tiene un controlador para la antigua URL, entonces es posible encontrar la cosa más fácil de hacer es lo anterior, es decir, sólo la sustitución del cuerpo con:
return redirect(url_for('new_hotness'))
La respuesta de Radomir puede ser preferible especialmente si usted tiene una gran cantidad de asignaciones de URL pasadas de nuevo, sin embargo.