Question

Je fais un nouveau site Web pour remplacer qui utilise Python (2.6 dans mon cas) un courant, en utilisant des micro-cadre Flask (basé sur Werkzeug).

La fonctionnalité de base et de nombreuses pages sont les mêmes. Cependant, en utilisant un grand nombre Flask des URL précédentes sont différentes pour les anciens.

je besoin d'un moyen de quelque sorte stocker les chacune des anciennes URL et la nouvelle URL, de sorte que si un utilisateur tape dans une ancienne URL, ils sont simplement transférés vers la nouvelle URL et tout fonctionne bien pour eux.


Ne sait à personne si cela est possible dans Flask?

Merci d'avance pour votre aide: -)

Était-ce utile?

La solution

Quelque chose comme cela devrait vous aider à démarrer:

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)

Autres conseils

Une autre façon que vous pouvez faire est de changer le gestionnaire de l'ancienne URL simplement redirect explicitement.

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 vous avez déjà un gestionnaire pour l'ancienne URL, vous trouverez peut-être la meilleure chose à faire est ce qui précède, à savoir que remplacer le corps avec:

return redirect(url_for('new_hotness'))

La réponse de Radomir peut être préférable, surtout si vous avez beaucoup de nouveaux-anciens mappages d'URL, cependant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top