Frage

Ich bin eine neue Website mache einen Strom zu ersetzen, mit Flask Mikro-Rahmen (basierend auf Werkzeug), den Python (2.6 in meinem Fall) verwendet.

Die Kernfunktionalität und viele Seiten sind gleich. Jedoch unter Verwendung von Flask viele der vorherigen URLs sind anders als die alten.

ich brauche einen Weg, um irgendwie zu speichern, die jedem der alten URLs und die neue URL, so dass, wenn ein Benutzer in einer alten URL sie einfach weitergeleitet werden an die neue URL und alles funktioniert für sie in Ordnung.


Weiß jemand, ob dies möglich ist in Flask?

Vielen Dank im Voraus für Ihre Hilfe: -)

War es hilfreich?

Lösung

So etwas sollte Ihnen den Start:

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)

Andere Tipps

Eine andere Möglichkeit, dies zu tun ist, um die Handler für die alte URL zu ändern, einfach Umleitung explizit.

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

Wenn Sie bereits einen Handler für die alte URL haben, dann könnten Sie die einfachste Sache für Sie zu tun ist, die oben, das heißt nur den Körper mit dem Ersetzen:

return redirect(url_for('new_hotness'))

Radomir Antwort bevorzugt sein kann, vor allem, wenn Sie eine Menge von alten neuen URL-Zuordnungen haben, aber.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top