用Flask微框架重定向旧网址到新网址
我正在制作一个新网站,来替代现在的那个,使用的是Flask这个微框架(基于Werkzeug),我用的是Python(我的版本是2.6)。
新网站的核心功能和很多页面和旧网站是一样的。不过因为使用了Flask,很多以前的网址和现在的不一样了。
我需要一种方法来存储每个旧网址和新网址,这样如果用户输入旧网址,就能自动跳转到新网址,确保他们能正常使用网站。
有没有人知道在Flask中这样做是否可行?
提前谢谢大家的帮助 :-)
2 个回答
4
你还可以通过改变旧网址的处理方式,让它直接跳转到新网址。
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'))
如果你已经有了处理旧网址的代码,那么最简单的方法就是像上面那样,把内容替换成:
return redirect(url_for('new_hotness'))
不过,如果你有很多旧网址和新网址的对应关系,Radomir的回答可能会更好。
17
像这样的代码可以帮助你入门:
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)