Přesměrování staré adresy URL na novou s Baňka mikro-rámce

hlasů
6

Dělám nové webové stránky, aby nahradil současný jednu pomocí Flask mikro-rámec (založený na Werkzeug), který používá Python (2.6 v mém případě).

Základní funkčnost a mnoho stránek jsou stejné. Nicméně pomocí Flask mnoho z předchozích adres URL jsou odlišné od těch starých.

Musím způsob, jak nějak skladujte každý ze starých URL a novou adresu URL, takže pokud uživatel zadá ve staré adresy URL, které jsou jednoduše předány na novou adresu URL a vše funguje pro ně.



Ví někdo, jestli je to možné, v baňce?

Předem děkuji za Vaši pomoc :-)

Položena 24/09/2010 v 18:17
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
17

Něco takového by mělo dostat jste začali:

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)
Odpovězeno 24/09/2010 v 18:49
zdroj uživatelem

hlasů
4

Dalším způsobem, jak můžete udělat, je změnit rutinu pro staré URL jednoduše přesměrovat explicitně.

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

Pokud již máte popisovač staré adresy URL, pak byste měli najít nejjednodušší věc udělat, je výše uvedené, tj právě nahrazení tělu:

return redirect(url_for('new_hotness'))

Radomír odpověď může být výhodné zejména v případě, že máte spoustu mapování starých nové URL, nicméně.

Odpovězeno 16/08/2016 v 20:14
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more