2010-09-24 23 views
6

Tworzę nową stronę internetową, która zastąpi obecną, używając mikroprocesora Flask (opartego na Werkzeug), który wykorzystuje język Python (w moim przypadku 2.6).Przekierowywanie starego adresu URL na nowy za pomocą mikrokomputera Flask

Podstawowa funkcjonalność i wiele stron są takie same. Jednak za pomocą Flask wiele poprzednich adresów URL różni się od starych.

Potrzebuję sposobu, aby w jakiś sposób przechowywać każdy ze starych adresów URL i nowego adresu URL, tak aby w przypadku wpisania starego adresu URL po prostu przekierowano go pod nowy adres URL i wszystko działało dobrze.



Czy ktoś wie, czy jest to możliwe w kolbie?

Z góry dziękuję za pomoc :-)

Odpowiedz

17

Coś jak to powinno Ci zacząć:

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

inny sposób można to zrobić, to zmienić obsługi dla starego adresu URL po prostu przekierować jawnie.

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

Jeśli masz już obsługi dla starego adresu URL, to może się okazać, najłatwiejszą rzeczą do zrobienia jest powyżej, czyli po prostu zastępując organizmowi:

return redirect(url_for('new_hotness')) 

odpowiedź Radomir może być korzystne szczególnie jeśli masz dużo starych mapowań adresów URL.

+0

Uwaga, jeśli przekierowujesz do kotwicy, nie możesz przywiązać go do 'new_hotness'. Musisz użyć innego parametru o nazwie '_anchor', aby go określić. https://stackoverflow.com/questions/21583594/flask-redirect-url-with-anchor – phyatt