Python 使用Flask micro framework将旧URL重定向到新URL

Python 使用Flask micro framework将旧URL重定向到新URL,python,url-routing,flask,werkzeug,Python,Url Routing,Flask,Werkzeug,我正在制作一个新网站来取代当前的网站,使用Flask micro framework(基于Werkzeug),它使用Python(在我的例子中是2.6) 核心功能和许多页面是相同的。然而,通过使用Flask,许多以前的URL与旧的不同 我需要一种方法以某种方式存储旧URL和新URL中的每一个,这样,如果用户键入旧URL,它们只需转发到新URL,并且对它们来说一切正常 有人知道这在烧瓶里是否可行吗 提前感谢您的帮助:-)类似的内容应该可以帮助您开始: from flask import Flas

我正在制作一个新网站来取代当前的网站,使用Flask micro framework(基于Werkzeug),它使用Python(在我的例子中是2.6)

核心功能和许多页面是相同的。然而,通过使用Flask,许多以前的URL与旧的不同

我需要一种方法以某种方式存储旧URL和新URL中的每一个,这样,如果用户键入旧URL,它们只需转发到新URL,并且对它们来说一切正常



有人知道这在烧瓶里是否可行吗


提前感谢您的帮助:-)

类似的内容应该可以帮助您开始:

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)

另一种方法是将旧URL的处理程序更改为显式重定向

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'))
如果您已经有了旧URL的处理程序,那么您可能会发现最简单的方法是执行上述操作,即仅将主体替换为:

return redirect(url_for('new_hotness'))

Radomir的答案可能更可取,尤其是当你有很多新旧URL映射时。

注意,如果你重定向到一个锚,你不能将其固定到
new\u hotness
。您必须使用另一个名为
\u anchor
的参数来指定它。